import type { CortiAuth } from "@corti/sdk"; import type { TemplateResult } from "lit"; import { type CSSResultGroup, LitElement, type PropertyValues } from "lit"; import type { SocketController, SocketControllerOutboundItem, SocketControllerWebSocket } from "../controllers/socket-controller.js"; import type { RecordingSocketInboundMessage } from "../socket-messages.js"; import type { ProxyOptions, RecordingState } from "../types.js"; import "../icons/icons.js"; import "./speech-audio-visualiser.js"; export declare abstract class RecordingButtonBase extends LitElement { #private; _debug_displayAudio?: boolean; _virtualMode?: boolean; protected get _audioLevel(): number; protected _renderAudioVisualiser(isRecording: boolean): TemplateResult; _recordingState: RecordingState; _selectedDevice?: MediaDeviceInfo; _analytics?: Record; _accessToken?: string; _authConfig?: CortiAuth.AuthTokenDerivable; _region?: string; _tenantName?: string; _socketUrl?: string; _socketProxy?: ProxyOptions; _pushToTalkKeybinding?: string | null; _toggleToTalkKeybinding?: string | null; allowButtonFocus: boolean; protected abstract _socketController: SocketController; protected abstract _getConnectConfig(): TConfig; static styles: CSSResultGroup; protected update(changedProperties: PropertyValues): void; startRecording(): void; stopRecording(): void; toggleRecording(): void; openConnection(): Promise; closeConnection(): Promise; render(): TemplateResult<1>; }