import { createCallbackOutboxService, type ApprovalNotificationPreparationInput, type CallbackDeliveryReconciliationInput, type CallbackExecutionResult, type CallbackOutboxServicePorts, type CallbackPreparationOptions, type CallbackRetryMonitorInput, type InteractionNotificationPreparationInput, type PreparedCallback, type StallNotificationPreparationInput, type TerminalCompletionPreparationInput } from "./callback-outbox-service.js"; import type { CallbackRetryDisposition, DeliverCallbackInput } from "./callback-outbox-policy.js"; import { type CallbackTransport, type CallbackTransportDeliverInput } from "./callback-transport.js"; import { type Conversation } from "./protocol.js"; import type { TranscriptEvent } from "./transcript.js"; export type CallbackCliOptions = Omit & { callbackRetryDelayMs?: unknown; state?: string; statePath?: string; [option: string]: unknown; }; type ResolvedCallbackTransportDelivery = Omit; export interface CallbackCliDependencies { state: { acquireFileLock(lockPath: string): () => void; loadConversation(options: CallbackCliOptions): { conversation: Conversation; statePath: string; logPath: string; }; readEvents(logPath: string): TranscriptEvent[]; withWriter(storeDir: string, operation: () => Result): Result; }; authority: CallbackOutboxServicePorts["authority"]; retry: CallbackOutboxServicePorts["retry"]; delivery: { transport: CallbackTransport; resolve(input: DeliverCallbackInput): ResolvedCallbackTransportDelivery; }; runtime: { textSummary(value: unknown): unknown; }; } type CallbackOutboxService = ReturnType; export interface CallbackCliFacade { runCallback(options: CallbackCliOptions): void; runRetryCallback(options: CallbackCliOptions): void; retryDisposition(delivery: unknown): CallbackRetryDisposition; reconcileDelivery(input: CallbackDeliveryReconciliationInput): ReturnType; runRetryMonitor(input: CallbackRetryMonitorInput): void; prepareApprovalNotification(input: ApprovalNotificationPreparationInput): ReturnType; prepareInteractionNotification(input: InteractionNotificationPreparationInput): ReturnType; prepareStallNotification(input: StallNotificationPreparationInput): ReturnType; prepareTerminalCompletion(input: TerminalCompletionPreparationInput): ReturnType; runPrepared(prepared: PreparedCallback, options?: { emit?: boolean; }): CallbackExecutionResult; emitPreparedResult(result: CallbackExecutionResult): void; } export declare function createCallbackCliFacade(dependencies: CallbackCliDependencies): CallbackCliFacade; export {};