import * as ws from "ws"; import { EventEmitter } from "node:events"; import { Session } from "./types.js"; import { STT, STTEvents } from "../../../interfaces/stt/stt.js"; import { Mutex } from "../../../commons/mutex.js"; import { Message } from "../../../interfaces/message/message.js"; export interface OpenAISTTOptions { apiKey: string; session: Session; queueSizeLimit?: number; } export declare class OpenAISTT extends EventEmitter implements STT { protected webSocket: ws.WebSocket; protected apiKey: string; protected mutex: Mutex; protected transcript: string; protected session: Session; constructor({ apiKey, session, queueSizeLimit }: OpenAISTTOptions); protected closeWebSocketConnection: () => void; protected createWebSocketConnection: () => ws.WebSocket; post: (message: Message) => void; protected onWebSocketMessage: (data: unknown) => void; protected onWebSocketOpen: () => void; protected onWebSocketClose: (code: number, reason: Buffer) => void; protected onWebSocketError: (err: Error) => void; dispose: () => void; }