export type QueueSummaryState = { dropPolicy: "summarize" | "old" | "new"; droppedCount: number; summaryLines: string[]; }; export type QueueDropPolicy = QueueSummaryState["dropPolicy"]; export type QueueState = QueueSummaryState & { items: T[]; cap: number; }; export declare function clearQueueSummaryState(state: QueueSummaryState): void; export declare function previewQueueSummaryPrompt(params: { state: QueueSummaryState; noun: string; title?: string; }): string | undefined; export declare function applyQueueRuntimeSettings(params: { target: { mode: TMode; debounceMs: number; cap: number; dropPolicy: QueueDropPolicy; }; settings: { mode: TMode; debounceMs?: number; cap?: number; dropPolicy?: QueueDropPolicy; }; }): void; export declare function elideQueueText(text: string, limit?: number): string; export declare function buildQueueSummaryLine(text: string, limit?: number): string; export declare function shouldSkipQueueItem(params: { item: T; items: T[]; dedupe?: (item: T, items: T[]) => boolean; }): boolean; export declare function applyQueueDropPolicy(params: { queue: QueueState; summarize: (item: T) => string; summaryLimit?: number; }): boolean; export declare function waitForQueueDebounce(queue: { debounceMs: number; lastEnqueuedAt: number; }): Promise; export declare function beginQueueDrain(map: Map, key: string): T | undefined; export declare function drainNextQueueItem(items: T[], run: (item: T) => Promise): Promise; export declare function drainCollectItemIfNeeded(params: { forceIndividualCollect: boolean; isCrossChannel: boolean; setForceIndividualCollect?: (next: boolean) => void; items: T[]; run: (item: T) => Promise; }): Promise<"skipped" | "drained" | "empty">; export declare function drainCollectQueueStep(params: { collectState: { forceIndividualCollect: boolean; }; isCrossChannel: boolean; items: T[]; run: (item: T) => Promise; }): Promise<"skipped" | "drained" | "empty">; export declare function buildQueueSummaryPrompt(params: { state: QueueSummaryState; noun: string; title?: string; }): string | undefined; export declare function buildCollectPrompt(params: { title: string; items: T[]; summary?: string; renderItem: (item: T, index: number) => string; }): string; export declare function hasCrossChannelItems(items: T[], resolveKey: (item: T) => { key?: string; cross?: boolean; }): boolean;