/// <reference types="chromecast-caf-sender" />
import { IEventEmitter } from '../../../event-emitter/types';
import { EngineState } from '../../../../constants';
declare type RemotePlayerController = cast.framework.RemotePlayerController;
import { IVideoOutput } from '../../types';
export default class StateEngine {
    private _eventEmitter;
    private _currentState;
    private _isMetadataLoaded;
    private _remotePlayerController;
    private _currentVolume;
    private _currentMute;
    private _output;
    constructor(eventEmitter: IEventEmitter, output: IVideoOutput, controller: RemotePlayerController);
    private _bindCallbacks;
    private _bindEvents;
    private _processEventFromVideo;
    private _checkVolumeChanges;
    setState(state: EngineState): void;
    get isMetadataLoaded(): boolean;
    get state(): EngineState;
    destroy(): void;
}
export {};
