import { PipecatClientOptions, RTVIEventCallbacks, Tracks, APIRequest, RTVIMessage, Transport, TransportState } from "@pipecat-ai/client-js"; import { DailyEventObjectTrack } from "@daily-co/daily-js"; declare abstract class MediaManager { protected _userAudioCallback: (data: ArrayBuffer) => void; protected _options: PipecatClientOptions; protected _callbacks: RTVIEventCallbacks; protected _micEnabled: boolean; protected _camEnabled: boolean; protected _supportsScreenShare: boolean; constructor(); setUserAudioCallback(userAudioCallback: (data: ArrayBuffer) => void): void; setClientOptions(options: PipecatClientOptions, override?: boolean): void; abstract initialize(): Promise; abstract connect(): Promise; abstract disconnect(): Promise; abstract userStartedSpeaking(): Promise; abstract bufferBotAudio(data: ArrayBuffer | Int16Array, id?: string): Int16Array | undefined; abstract getAllMics(): Promise; abstract getAllCams(): Promise; abstract getAllSpeakers(): Promise; abstract updateMic(micId: string): void; abstract updateCam(camId: string): void; abstract updateSpeaker(speakerId: string): void; abstract get selectedMic(): MediaDeviceInfo | Record; abstract get selectedCam(): MediaDeviceInfo | Record; abstract get selectedSpeaker(): MediaDeviceInfo | Record; abstract enableMic(enable: boolean): void; abstract enableCam(enable: boolean): void; abstract enableScreenShare(enable: boolean): void; abstract get isCamEnabled(): boolean; abstract get isMicEnabled(): boolean; abstract get isSharingScreen(): boolean; abstract tracks(): Tracks; get supportsScreenShare(): boolean; } export class WavMediaManager extends MediaManager { constructor(recorderChunkSize?: number | undefined, recorderSampleRate?: number | undefined); initialize(): Promise; connect(): Promise; disconnect(): Promise; userStartedSpeaking(): Promise; bufferBotAudio(data: ArrayBuffer | Int16Array, id?: string): Int16Array; getAllMics(): Promise; getAllCams(): Promise; getAllSpeakers(): Promise; updateMic(micId: string): Promise; updateCam(camId: string): void; updateSpeaker(speakerId: string): void; get selectedMic(): MediaDeviceInfo | Record; get selectedCam(): MediaDeviceInfo | Record; get selectedSpeaker(): MediaDeviceInfo | Record; enableMic(enable: boolean): Promise; enableCam(enable: boolean): void; enableScreenShare(enable: boolean): void; get isCamEnabled(): boolean; get isMicEnabled(): boolean; get isSharingScreen(): boolean; tracks(): Tracks; } export class DailyMediaManager extends MediaManager { constructor(enablePlayer?: boolean, enableRecording?: boolean, onTrackStartedCallback?: (event: DailyEventObjectTrack) => void, onTrackStoppedCallback?: (event: DailyEventObjectTrack) => void, recorderChunkSize?: number | undefined, recorderSampleRate?: number, playerSampleRate?: number); initialize(): Promise; connect(): Promise; disconnect(): Promise; userStartedSpeaking(): Promise; bufferBotAudio(data: ArrayBuffer | Int16Array, id?: string): Int16Array | undefined; getAllMics(): Promise; getAllCams(): Promise; getAllSpeakers(): Promise; updateMic(micId: string): void; updateCam(camId: string): void; updateSpeaker(speakerId: string): Promise; get selectedMic(): MediaDeviceInfo | Record; get selectedCam(): MediaDeviceInfo | Record; get selectedSpeaker(): MediaDeviceInfo | Record; enableMic(enable: boolean): Promise; enableCam(enable: boolean): void; enableScreenShare(enable: boolean): void; get isCamEnabled(): boolean; get isMicEnabled(): boolean; get isSharingScreen(): boolean; tracks(): Tracks; protected handleTrackStarted(event: DailyEventObjectTrack): Promise; protected handleTrackStopped(event: DailyEventObjectTrack): void; } declare class TrackStatusMessage { type: string; receiver_index: number; enabled: boolean; constructor(receiver_index: number, enabled: boolean); } export type IceConfig = { iceServers?: RTCIceServer[]; }; export type SmallWebRTCTransportConnectionOptions = { /** @deprecated Use webrtcRequestParams instead */ connectionUrl?: string; /** @deprecated Use webrtcRequestParams instead */ webrtcUrl?: string; webrtcRequestParams?: APIRequest; iceConfig?: IceConfig; }; export interface SmallWebRTCTransportConstructorOptions extends SmallWebRTCTransportConnectionOptions { iceServers?: RTCIceServer[]; waitForICEGathering?: boolean; audioCodec?: string; videoCodec?: string; mediaManager?: MediaManager; offerUrlTemplate?: string; } declare class RenegotiateMessage { type: string; } declare class PeerLeftMessageMessage { type: string; } type OutboundSignallingMessage = TrackStatusMessage; type InboundSignallingMessage = RenegotiateMessage | PeerLeftMessageMessage; declare const SIGNALLING_TYPE = "signalling"; declare class SignallingMessageObject { type: typeof SIGNALLING_TYPE; message: InboundSignallingMessage | OutboundSignallingMessage; constructor(message: InboundSignallingMessage | OutboundSignallingMessage); } /** * SmallWebRTCTransport is a class that provides a client-side * interface for connecting to the SmallWebRTCTransport provided by Pipecat */ export class SmallWebRTCTransport extends Transport { static SERVICE_NAME: string; constructor(opts?: SmallWebRTCTransportConstructorOptions); initialize(options: PipecatClientOptions, messageHandler: (ev: RTVIMessage) => void): void; initDevices(): Promise; setAudioCodec(audioCodec: string | null): void; setVideoCodec(videoCodec: string | null): void; _resolveRequestInfo(params: SmallWebRTCTransportConstructorOptions | SmallWebRTCTransportConnectionOptions): APIRequest | null; _getStartEndpointAsString(): string | undefined; _validateConnectionParams(connectParams: unknown): SmallWebRTCTransportConnectionOptions | undefined; _connect(connectParams?: SmallWebRTCTransportConnectionOptions): Promise; sendReadyMessage(): void; sendMessage(message: RTVIMessage): void; _disconnect(): Promise; handleMessage(message: string): void; handleSignallingMessage(messageObj: SignallingMessageObject): Promise; getAllMics(): Promise; getAllCams(): Promise; getAllSpeakers(): Promise; updateMic(micId: string): Promise; updateCam(camId: string): void; updateSpeaker(speakerId: string): void; get selectedMic(): MediaDeviceInfo | Record; get selectedCam(): MediaDeviceInfo | Record; get selectedSpeaker(): MediaDeviceInfo | Record; set iceServers(iceServers: RTCIceServer[]); get iceServers(): RTCIceServer[]; enableMic(enable: boolean): void; enableCam(enable: boolean): void; enableScreenShare(enable: boolean): Promise; get isCamEnabled(): boolean; get isMicEnabled(): boolean; get isSharingScreen(): boolean; get state(): TransportState; set state(state: TransportState); tracks(): Tracks; } //# sourceMappingURL=index.d.ts.map