import type { PlatformAdapter, MessageRef } from '../platform/index.js'; import type { AgentResult, ContextUsage } from '../core/types/agent-types.js'; import { type TurnMutationRelease } from './turn-mutation-lock.js'; import { conversationLedger } from '../store/conversation-ledger-repo.js'; import * as sessionBackup from '../domain/sessions/session-backup.js'; import type { ContinuationSink } from '../agent-adapter/types.js'; export declare function handleAgentSuccess({ result, channel, adapter, statusMsg, startTime, userMessage, executionId, trigger, sessionName, threadAnchorId, userMessageTs, projectId, onAssistantMessage, onToolUse, onToolResult, onContextUsage, registerContinuationSink }: { result: AgentResult; channel: string; adapter: PlatformAdapter; statusMsg: MessageRef; startTime: number; userMessage: string; executionId: string | null; trigger?: string; sessionName?: string | null; threadAnchorId?: string | null; userMessageTs?: string | null; projectId?: string; onAssistantMessage?: ((text: string) => void) | null; onToolUse?: ((name: string, input: any, toolUseId: string) => void) | null; onToolResult?: ((toolUseId: string, content: string, isError: boolean) => void) | null; onContextUsage?: ((usage: ContextUsage) => void) | null; registerContinuationSink?: ((sink: ContinuationSink) => void) | null; }): Promise; export declare function handleAgentError({ error, channel, adapter, statusMsg, startTime, executionId, sessionName, sessionId, effectiveSessionId, threadAnchorId, userMessageTs, userMessage }: { error: { message: string; cancelled?: boolean; rateLimitProvider?: string; }; channel: string; adapter: PlatformAdapter; statusMsg: MessageRef; startTime: number; executionId: string | null; sessionName?: string | null; sessionId?: string | null; effectiveSessionId?: string | null; threadAnchorId?: string | null; userMessageTs?: string | null; userMessage?: string | null; }): Promise; export declare function resumeAskUserQuestionGroup({ adapter, group, responseText }: { adapter: PlatformAdapter; group: { channel: string; sessionId: string; groupId: string; threadId?: string | null; }; responseText: string; }): Promise; export declare function reprocessMessage(channel: string, text: string, adapter: PlatformAdapter, opts: { originalTs: string; isRetry: boolean; sessionId: string | null; sessionName: string | null; supersededStatusTimestamps?: string[]; }): void; interface TurnTrackingDeps { resolveBackend(channel: string): string; getProfile(channel: string): string | null; ledger: Pick; backup: Pick; } export interface TurnTrackingOptions { onAccepted?: () => void; mutationRelease?: TurnMutationRelease; deps?: TurnTrackingDeps; } export type TurnTrackingToken = symbol; export declare function markPendingTurnSuperseded(channel: string): void; export declare function isPendingTurnSuperseded(channel: string): boolean; export declare function consumePendingTurnSupersession(channel: string, token: TurnTrackingToken): boolean; export declare function finishTurnTracking(channel: string, token: TurnTrackingToken): void; export declare function isTurnTrackingPending(channel: string): boolean; export declare function waitForTurnTracking(channel: string): Promise; export declare function initTurnTracking(channel: string, trackSessionId: string | null, backendSessionId: string | null, sessionName: string | null, userMessageTs: string, userMessageText: string, statusMessageTs: string, options?: TurnTrackingOptions): Promise; export {};