/** Lifecycle state of the human participant, as reported during a live call. */ export declare enum UserState { /** No speech activity from the user. */ IDLE = "idle", /** The user is currently speaking. */ SPEAKING = "speaking", /** The user has stopped speaking and the agent is listening for more. */ LISTENING = "listening" } /** Lifecycle state of the agent during a live call. */ export declare enum AgentState { /** Session is connecting / not yet ready. */ STARTING = "starting", /** Connected and waiting, no active turn. */ IDLE = "idle", /** The agent is speaking (synthesizing/playing audio). */ SPEAKING = "speaking", /** The agent is listening to the user. */ LISTENING = "listening", /** The agent is generating a response. */ THINKING = "thinking", /** The session is shutting down. */ CLOSING = "closing" } /** * The shape of the configured pipeline, derived from which components * ({@link PipelineComponent}) are present. Determined automatically from the * {@link Pipeline} you build; not normally set by hand. */ export declare enum PipelineMode { /** A single realtime speech-to-speech model handles the whole turn. */ REALTIME = "realtime", /** Full cascade: STT then LLM then TTS. */ FULL_CASCADING = "full_cascading", /** LLM and TTS only (text in, speech out). */ LLM_TTS_ONLY = "llm_tts_only", /** STT and LLM only (speech in, text out). */ STT_LLM_ONLY = "stt_llm_only", /** LLM only. */ LLM_ONLY = "llm_only", /** STT only. */ STT_ONLY = "stt_only", /** TTS only. */ TTS_ONLY = "tts_only", /** STT and TTS only (no LLM). */ STT_TTS_ONLY = "stt_tts_only", /** A realtime model combined with one or more cascading components. */ HYBRID = "hybrid", /** An incomplete cascade (none of the above combinations). */ PARTIAL_CASCADING = "partial_cascading" } /** How a realtime speech-to-speech model is wired into the pipeline. */ export declare enum RealtimeMode { /** End-to-end speech-to-speech; the model handles audio in and out. */ FULL_S2S = "full_s2s", /** Realtime model with an external STT for transcription. */ HYBRID_STT = "hybrid_stt", /** Realtime model with an external TTS for synthesis. */ HYBRID_TTS = "hybrid_tts", /** Realtime model used only as the LLM. */ LLM_ONLY = "llm_only" } /** A processing component that can be present in a {@link Pipeline}. */ export declare enum PipelineComponent { /** Speech-to-text. */ STT = "stt", /** Language model. */ LLM = "llm", /** Text-to-speech. */ TTS = "tts", /** Voice activity detection. */ VAD = "vad", /** End-of-turn detection. */ TURN_DETECTOR = "turn_detector", /** Avatar/video synthesis. */ AVATAR = "avatar", /** Audio denoising. */ DENOISE = "denoise", /** Realtime speech-to-speech model. */ REALTIME_MODEL = "realtime_model" } /** Stage of a speech-to-text result, reported on {@link STTResponse}. */ export declare enum SpeechEventType { /** The user began speaking. */ START = "start_of_speech", /** A partial, still-changing transcript. */ INTERIM = "interim_transcript", /** A near-final transcript emitted before end-of-speech. */ PREFLIGHT = "preflight_transcript", /** The finalized transcript for the utterance. */ FINAL = "final_transcript", /** The user stopped speaking. */ END = "end_of_speech" } /** Voice-activity-detection event, reported on {@link VADResponse}. */ export declare enum VADEventType { START_OF_SPEECH = "start_of_speech", END_OF_SPEECH = "end_of_speech" } /** Author role of a {@link ChatMessage}. */ export declare enum ChatRole { /** System/instruction message. */ SYSTEM = "system", /** Developer instruction message (OpenAI-style). */ DEVELOPER = "developer", /** A message from the end user. */ USER = "user", /** A message generated by the model/agent. */ ASSISTANT = "assistant", /** A tool/function result returned to the model. */ TOOL = "tool" } /** How the model is allowed to use tools on a turn. */ export declare enum ToolChoice { /** The model decides whether to call a tool. */ AUTO = "auto", /** Tool calling is disabled. */ NONE = "none", /** The model must call a tool. */ REQUIRED = "required" } /** Container/codec for a call recording. */ export declare enum RecordingFormat { WAV = "wav", OGG_OPUS = "ogg_opus", MP3 = "mp3", FLAC = "flac" } /** Channel layout for a call recording. */ export declare enum RecordingChannelMode { /** All participants mixed into one channel. */ MIXED = "mixed", /** Agent and user on separate channels. */ DUAL_CHANNEL = "dual_channel" } /** Output format for a recording's transcript. */ export declare enum RecordingTranscriptFormat { JSON = "json", SRT = "srt", VTT = "vtt" } /** Current state of a recording, reported via recording status events. */ export declare enum RecordingState { IDLE = "idle", RECORDING = "recording", FINALIZING = "finalizing", UPLOADING = "uploading", COMPLETED = "completed", FAILED = "failed" } declare class PipelineConfigImpl { readonly pipelineMode: PipelineMode; readonly realtimeMode: RealtimeMode | null; readonly isRealtime: boolean; readonly activeComponents: ReadonlySet; constructor(opts: { pipelineMode: PipelineMode; realtimeMode: RealtimeMode | null; isRealtime: boolean; activeComponents: Iterable; }); /** Whether the given component is part of this pipeline. */ hasComponent(component: PipelineComponent): boolean; /** The active component identifiers as plain strings. */ get componentNames(): string[]; } /** * Immutable summary of a pipeline's shape: its {@link PipelineMode}, optional * {@link RealtimeMode}, and the set of active {@link PipelineComponent}s. Produced * by {@link Pipeline.config}; rarely constructed directly. */ export type PipelineConfig = PipelineConfigImpl; /** Create a {@link PipelineConfig}. */ export declare const PipelineConfig: (opts: { /** Overall pipeline shape. */ pipelineMode: PipelineMode; /** Realtime wiring, or `null` for a non-realtime pipeline. */ realtimeMode: RealtimeMode | null; /** Whether a realtime model is in use. */ isRealtime: boolean; /** Components present in the pipeline. */ activeComponents: Iterable; }) => PipelineConfig; export {};