summaryrefslogtreecommitdiffhomepage
path: root/src/features/chat/pending-inputs.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/chat/pending-inputs.ts')
-rw-r--r--src/features/chat/pending-inputs.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/features/chat/pending-inputs.ts b/src/features/chat/pending-inputs.ts
new file mode 100644
index 0000000..d7fb0aa
--- /dev/null
+++ b/src/features/chat/pending-inputs.ts
@@ -0,0 +1,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;
+}