@corti/dictation-web
Version:
Web component for Corti Dictation
36 lines (35 loc) • 1.67 kB
TypeScript
import { type Corti, type CortiAuth } from "@corti/sdk";
import type { ReactiveController, ReactiveControllerHost } from "lit";
import type { ProxyOptions } from "../types.js";
interface DictationControllerHost extends ReactiveControllerHost {
dispatchEvent: (event: Event) => void;
_accessToken?: string;
_authConfig?: CortiAuth.AuthTokenDerivable;
_region?: string;
_tenantName?: string;
_socketUrl?: string;
_socketProxy?: ProxyOptions;
_dictationConfig?: Corti.TranscribeConfig;
}
export type TranscribeMessage = Corti.TranscribeConfigStatusMessage | Corti.TranscribeUsageMessage | Corti.TranscribeDeltaUsageMessage | Corti.TranscribeEndedMessage | Corti.TranscribeErrorMessage | Corti.TranscribeTranscriptMessage | Corti.TranscribeCommandMessage | Corti.TranscribeFlushedMessage;
interface WebSocketCallbacks {
onMessage?: (message: TranscribeMessage) => void;
onError?: (error: Error) => void;
onClose?: (event: unknown) => void;
onNetworkActivity?: (direction: "sent" | "received", data: unknown) => void;
}
export declare class DictationController implements ReactiveController {
#private;
host: DictationControllerHost;
constructor(host: DictationControllerHost);
hostDisconnected(): void;
connect(dictationConfig?: Corti.TranscribeConfig, callbacks?: WebSocketCallbacks): Promise<boolean | "superseded">;
mediaRecorderHandler: (data: Blob) => void;
pause(): Promise<void>;
isConnectionOpen(): boolean;
isConnecting(): boolean;
waitForConnection(): Promise<void>;
closeConnection(onClose?: (event: unknown) => void): Promise<void>;
cleanup(): void;
}
export {};