summaryrefslogtreecommitdiffhomepage
path: root/src/features/chat/pending-inputs.ts
blob: d7fb0aafe2fd1d0a78ef0c3caeef41a713767eab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
import type { ChatQueueMessage, ChatSendMessage } from "@dispatch/transport-contract";

/** A saved copy, never automatically retransmitted: requestId is not idempotent. */
export interface PendingInput {
  readonly request: (ChatSendMessage | ChatQueueMessage) & { readonly requestId: string };
  readonly rejection?: string;
}

export interface PendingInputStorage {
  load(): readonly PendingInput[];
  save(inputs: readonly PendingInput[]): void;
}