import type { TeamRepresentationSelection } from '../team-group-contract.js'; import type { ArkmeLongArticleDetail, ArkmeLongArticleDraft, ArkmeSourceSendResult } from '../types.js'; export type ComposerArticle = { kind: 'existing'; detail: ArkmeLongArticleDetail; messageActionRef: string; } | { kind: 'new'; draft: ArkmeLongArticleDraft & { recordUid: string; relationUid: string; }; }; export interface ComposerArticleState { article: ComposerArticle; recordUid: string; relationUid: string; sendAtMillis: number; sending: boolean; error: string; } /** Independent from the text/files draft: article sends must never consume that draft. */ export declare class ComposerArticleStore { private states; private nativePrefixes; private isNative; useNativePersistence(prefix: string): void; confirmNativeSave(key: string): void; private listeners; subscribe: (listener: () => void) => () => void; get: (key?: string) => ComposerArticleState | undefined; entries(): ReadonlyMap; applyRemote(key: string, value: unknown, restoring?: boolean): void; set(key: string, article: ComposerArticle): void; remove(key: string): void; send(key: string, sourceRef: string, expectedUserId: number, expectedEnvironment: string, consumed?: () => Promise, representation?: TeamRepresentationSelection): Promise; private ownsSubmission; private write; } export declare const composerArticleStore: ComposerArticleStore; export declare function useComposerArticle(key?: string): ComposerArticleState | undefined; export declare function composerArticleKey(accountKey?: string, draftKey?: string): string | undefined; //# sourceMappingURL=composer-article-store.d.ts.map