import { CoID, InviteSecret, RawAccount, RawCoMap, SessionID } from "cojson"; import { type RawCoStream } from "cojson"; import { type Account, CoValue, CoValueClassOrSchema, ID, InstanceOfSchema } from "../internal.js"; export type InboxInvite = `${CoID}/${InviteSecret}`; type TxKey = `${SessionID}/${number}`; type MessagesStream = RawCoStream>>; type FailedMessagesStreamItem = { errors: string[]; value: CoID>; }; type FailedMessagesStream = RawCoStream; type TxKeyStream = RawCoStream; export type InboxRoot = RawCoMap<{ messages: CoID; processed: CoID; failed: CoID; inviteLink: InboxInvite; }>; export declare function createInboxRoot(account: Account): { id: CoID; inviteLink: `${CoID}/inviteSecret_z${string}`; }; type InboxMessage = RawCoMap<{ payload: ID; result: ID | undefined; processed: boolean; error: string | undefined; }>; export declare class Inbox { account: Account; messages: MessagesStream; processed: TxKeyStream; failed: FailedMessagesStream; root: InboxRoot; private constructor(); subscribe(Schema: M, callback: (message: InstanceOfSchema, senderAccountID: ID) => Promise, options?: { concurrencyLimit?: number; }): () => void; static load(account: Account): Promise; } export declare class InboxSender { currentAccount: Account; owner: RawAccount; messages: MessagesStream; private constructor(); getOwnerAccount(): RawAccount; sendMessage(message: I): Promise : undefined>; static load(inboxOwnerID: ID, currentAccount?: Account): Promise>; } export {}; //# sourceMappingURL=inbox.d.ts.map