import { RealtimeOptions, RealtimeSession } from "../contracts/realtime.contract.mjs"; //#region ../../packages/ai-live/src/realtime/realtime.d.ts /** * Open a live duplex voice session — the stateful primitive of * `@warlock.js/ai-live`. Connects through the provided * {@link RealtimeOptions.transport} (an OpenAI Realtime WebSocket * adapter, a mock in tests), then hands back a {@link RealtimeSession} * you drive: push audio/text in, consume the event stream out, and * `close()` to end it and receive a `type: "realtime"` report for the * cost/observability surfaces. * * Unlike the one-shot `ai.*` verbs, this returns a long-lived session — * its closest sibling is `ai.orchestrator`. Keeping the transport * pluggable is what lets the session surface ship without hard-wiring a * WebSocket dependency. * * @example * const session = await ai.realtime({ transport, model: "gpt-realtime", voice: "alloy" }); * session.sendAudio(micChunk, "audio/pcm"); * for await (const event of session.events()) { * if (event.type === "audio") speaker.write(event.base64); * } * const report = await session.close(); */ export declare function realtime(options: RealtimeOptions): Promise; //#endregion //# sourceMappingURL=realtime.d.mts.map