import { EventEmitter, JSONRPCSubscribeMethod } from '@signalwire/core';
import { ListenSubscriber } from '../ListenSubscriber';
import { SWClient } from '../SWClient';
export declare class BaseVideo<T extends {}, EventTypes extends EventEmitter.ValidEventTypes> extends ListenSubscriber<T, EventTypes> {
    protected subscribeMethod: JSONRPCSubscribeMethod;
    protected _subscribeParams?: Record<string, any>;
    protected _eventChannel?: string;
    private _subscribedEvents;
    constructor(options: SWClient);
    protected get eventChannel(): string | undefined;
    protected getSubscriptions(): EventEmitter.EventNames<EventTypes>[];
    protected subscribe(listeners: T): Promise<() => Promise<void>>;
    protected addEvents(): Promise<void>;
    private getSubscribedEvents;
    private updateSubscribedEvents;
}
//# sourceMappingURL=BaseVideo.d.ts.map