export interface PlayerContextState<TAction = unknown, TLevel = unknown> {
    action: TAction;
    currentState: string;
    duration: number;
    currentTime: number;
    volume: number;
    playbackRate: number;
    fullScreen: boolean;
    levels: Array<TLevel>;
    url: string;
    levelMap: Map<string, string>;
    clarity: string;
}
export interface PlayerRuntimeState<TPending = unknown> {
    moveProgress: {
        percentage: number;
        mouseDown: boolean;
    };
    isSeeking: boolean;
    wasPlayingBeforeSeek: boolean;
    isBuffering: boolean;
    pendingPlaybackRestore?: TPending;
}
export declare function createDefaultPlayerContext<TAction, TLevel = unknown>(action: TAction): PlayerContextState<TAction, TLevel>;
export declare function resetSourceContextState(ctx: PlayerContextState): void;
export declare function createDefaultRuntimeState<TPending = unknown>(): PlayerRuntimeState<TPending>;
export declare function resetTransientRuntimeState<TPending>(state: PlayerRuntimeState<TPending>): void;
