import type { PipelineBus } from "./pipeline-bus.js"; import type { ModeSwitchRequestedPacket } from "./packets.js"; import { type InitStep as InitStepType } from "./init-chain.js"; export interface ModeSwitchHandlers { /** Steps to run when switching from text to audio mode. */ textToAudioSteps: InitStepType[]; /** Steps to run when switching from audio to text mode (teardown). */ audioToTextCleanups: Array<() => Promise>; } export declare class ModeSwitcher { private currentMode; private readonly bus; private handlers; constructor(bus: PipelineBus, initialMode?: "text" | "audio"); /** Register the init/teardown steps. Call once during session setup. */ register(handlers: ModeSwitchHandlers): void; /** Get the current mode. */ get mode(): "text" | "audio"; /** Handle a mode switch request from the bus. */ handleSwitchRequested(pkt: ModeSwitchRequestedPacket): Promise; private switchToAudio; private switchToText; } //# sourceMappingURL=mode-switcher.d.ts.map