import type { ChatDebugEvent, ChatDebugScenario } from './chat-debug-scenarios.js'; export type ChatDebugPlaybackSpeed = '1x' | '4x' | 'gap'; export declare function formatChatDebugTime(value: number): string; /** * Virtual clock and transport controls (play/pause, seek, event stepping, * speed, keyboard shortcuts) for a chat debug scenario. `onFrame` reports * every animation-frame delta while playing and `onReset` fires whenever the * clock rewinds to zero. `seekRevision` advances only for explicit timeline * discontinuities, so diagnostics can observe playback without owning it. */ export declare function useChatDebugPlayback(scenarios: ChatDebugScenario[], options?: { onFrame?: (frameDeltaMs: number) => void; onReset?: () => void; }): { selectedScenario: import("vue").ComputedRef; elapsedMs: import("vue").Ref; playing: import("vue").Ref; speed: import("vue").Ref; seekRevision: import("vue").Ref; playbackState: import("vue").ComputedRef; appliedEventCount: import("vue").ComputedRef; currentEvent: import("vue").ComputedRef; progress: import("vue").ComputedRef; seek: (nextElapsedMs: number) => void; restart: () => void; selectScenario: (id: string) => void; togglePlayback: () => void; jumpToEnd: () => void; stepEvent: (direction: -1 | 1) => void; selectSpeed: (nextSpeed: ChatDebugPlaybackSpeed) => void; applyManualEvent: (event: ChatDebugEvent) => void; };