import { Connection } from "../../domain/connection"; import { MediaElement } from "../../domain/mediaElement"; import { Track } from "../../domain/track"; import { GlobalHook } from "../base"; declare class Listener { target: EventTarget; eventType: string; handler: (...args: unknown[]) => void; constructor(target: EventTarget, eventType: string, handler: (...args: unknown[]) => void); handle(...args: unknown[]): void; } export declare abstract class Callback extends GlobalHook { listeners: Listener[]; addListener(target: EventTarget, eventType: string, handler: (...args: unknown[]) => void): void; stopListening(): void; detach(): void; } export declare abstract class TrackUpdatedCallback extends Callback { static serialize(track: Track): { enabled: boolean; transmitsData: boolean; playsLocally: boolean; deviceId: string | undefined; }; emitTrackUpdatedIfNeeded(track: Track, elements?: MediaElement[]): void; } export declare abstract class ConnectionUpdatedCallback extends TrackUpdatedCallback { emitEventsIfNeeded(connection: Connection): void; } export {};