import { RTCProviderEventHandler } from '../../core/RTCProvider'; /** * Base class for RTC providers. * Provides common event handling and state management. */ export declare abstract class BaseProvider { /** Provider name identifier */ abstract readonly name: string; /** * Pre-warm a future RTC connection if the provider supports it. */ prepareConnection?(config: import('../../types').RTCPrepareConnectionConfig): Promise; /** * Connect to RTC server. * @param config - Connection configuration */ abstract connect(config: import('../../types').RTCConnectionConfig): Promise; /** * Disconnect from RTC server. */ abstract disconnect(): Promise; /** * Get current connection state. */ abstract getConnectionState(): string; /** * Publish local audio track. * @param track - Optional MediaStreamTrack to publish */ abstract publishAudioTrack(track?: MediaStreamTrack): Promise; /** * Unpublish audio track. */ abstract unpublishAudioTrack(): Promise; /** * Get the native RTC client object. * @returns The native client, or null if not connected */ abstract getNativeClient(): unknown; /** * Add event listener. * @param event - Event name * @param handler - Event handler */ on(event: string, handler: RTCProviderEventHandler): void; /** * Remove event listener. * @param event - Event name * @param handler - Event handler */ off(event: string, handler: RTCProviderEventHandler): void; } //# sourceMappingURL=BaseProvider.d.ts.map