import { type FollowerDeliveryState } from "./follower-delivery.js"; import { type InboxMessage } from "./helpers.js"; export interface InboxDrainRuntimeDeps { sendUserMessage: (text: string) => void; isIdle: () => boolean; takeInboxMessages: (maxMessages?: number) => InboxMessage[]; restoreInboxMessages: (messages: InboxMessage[]) => void; updateBadge: () => void; reportStatus: (status: "working" | "idle") => Promise; userNames: { get: (key: string) => string | undefined; }; getSecurityPrompt: () => string; deliverTrackedSlackFollowUpMessage: (options: { prompt: string; messages: Pick[]; }) => boolean; getBrokerRole: () => "broker" | "follower" | null; hasFollowerClient: () => boolean; flushFollowerDeliveredAcks: () => Promise; markBrokerInboxIdsDelivered: (inboxIds: number[]) => void; getFollowerDeliveryState: () => FollowerDeliveryState; maxMessagesPerDrain?: number; } export interface InboxDrainRuntime { deliverFollowUpMessage: (text: string) => boolean; flushDeliveredFollowerAcks: () => Promise; drainInbox: () => void; } export declare function createInboxDrainRuntime(deps: InboxDrainRuntimeDeps): InboxDrainRuntime;