import { IChromecastManager } from './types';
import { IPlaybackEngine } from '../playback-engine/types';
import { IEventEmitter } from '../event-emitter/types';
export declare type PatchedWindow = Window & {
    __onGCastApiAvailable: Function;
};
export declare enum ChromecastEvents {
    CHROMECAST_INITED = "ui-events/chromecast-inited",
    CHROMECAST_CASTS_STARTED = "ui-events/chromecast-started",
    CHROMECAST_CASTS_RESUMED = "ui-events/chromecast-resumed",
    CHROMECAST_CASTS_STOPED = "ui-events/chromecast-stoped",
    CHROMECAST_NOT_CONNECTED = "ui-events/chromecast-not-connected",
    CHROMECAST_CONNECTING = "ui-events/chromecast-connecting",
    CHROMECAST_CONNECTED = "ui-events/chromecast-connected",
    CHROMECAST_NO_DEVICES_AVAILABLE = "ui-events/chromecast-not-available"
}
export default class ChromecastManager implements IChromecastManager {
    static moduleName: string;
    static dependencies: string[];
    private _engine;
    private _context;
    private _eventEmitter;
    constructor({ engine, eventEmitter, }: {
        engine: IPlaybackEngine;
        eventEmitter: IEventEmitter;
    });
    private _insertCastCallback;
    private _initCastContext;
    private static get _isCastApiInited();
    static _chromecastInited: boolean;
    private _onCastStateChange;
    private _onSessionStateChange;
    private _bindToContextEvents;
    destroy(): void;
    isCasting: boolean;
    isEnabled: boolean;
}
