import type { Context } from 'telegraf'; import type { Message } from 'telegraf/types'; import type { SenderState } from './streaming.sender.js'; import type { ProgressEntry } from './streaming.preview.js'; import type { ResponseMetadata } from '../agent/types.js'; export declare const PAUSE_COUNTDOWN_INTERVAL_MS: number; export interface StreamState extends SenderState { accumulated: string; answerText: string; pausedUntil: Date | null; countdownInterval: ReturnType | null; editInFlight: boolean; lastCountdownBucket: number; sawTerminalEvent: boolean; progressEntries: ProgressEntry[]; progressRounds: number; turnEnded: boolean; progressTimer: ReturnType | null; turnStartedAt: number; } export interface HandlerParams { state: StreamState; ctx: Context; chatId: number; cleanFinal: boolean; livePreview: () => string; finalBody: () => string; clearProgressTimer: () => void; renderActivityReceipt: (toolRounds: number, elapsedMs: number) => string; onComplete?: (assistantText: string, metadata?: ResponseMetadata) => void | Promise; logger?: (...args: unknown[]) => void; } export declare function handlePaused(event: { resetsAt?: Date | null; autoResume?: boolean; accountId?: string; }, params: HandlerParams): Promise; export declare function handleResumed(event: { hotSwapped?: boolean; accountId?: string; }, params: HandlerParams): Promise; export declare function handleDone(metadata: ResponseMetadata | undefined, params: HandlerParams): Promise; export declare function handleError(error: unknown, params: HandlerParams): never; export declare function deliverOverflow(ctx: Context, cleanFinal: boolean, answerText: string, finalBodyText: string, preview: Message.TextMessage | null): Promise;