import { State, Channel, LayerBase } from './api';
/**
 * StateObjectStorage is used for exposing the internal state variable
 * By default, it is storing the state as an internal variable,
 * byt may be using an external storage function for fetching/storing the state.
 */
export declare class StateObjectStorage {
    private _internalState;
    private _externalStorage?;
    assignExternalStorage(fcn: (action: string, data?: Record<string, any> | null) => InternalState): void;
    fetchState(): InternalState;
    storeState(data: InternalState): void;
    clearState(): void;
}
export interface InternalState extends State {
    channels: {
        [channel: string]: InternalChannel;
    };
}
export interface InternalChannel extends Channel {
    channelNo: number;
    videoMode: string | null;
    fps: number;
    layers: {
        [layer: string]: InternalLayer;
    };
}
export type InternalLayer = LayerBase;
//# sourceMappingURL=stateObjectStorage.d.ts.map