import { InjectionKey } from 'vue';
export type VideoPresetControl = 'play' | 'play-prev' | 'play-next' | 'refresh' | 'timer' | 'playback-rate' | 'flip' | 'volume' | 'pip' | 'full-window' | 'full-browser';
export type VideoShortcutOptions = Partial<Record<VideoPresetControl, string>>;
export type VideoControlName = VideoPresetControl | (string & {});
export type VideoControlConfig = VideoControlName | [VideoControlName, any];
export interface VideoControlLayout {
    left?: VideoControlConfig[];
    center?: VideoControlConfig[];
    right?: VideoControlConfig[];
}
export interface VideoPlaybackRate {
    label?: string;
    value: number;
}
export type VideoControlType = 'button' | 'select' | 'panel';
export interface VideoControlOption {
    value: string | number;
    label?: string;
    selectedLabel?: string;
    disabled?: boolean;
    divided?: boolean;
    title?: string;
}
export interface VideoSegment {
    time: number;
    title?: string;
}
export interface VideoState {
    placeId?: string;
    iconScale: number;
    addShortcut: (key: string, cb: () => void) => () => void;
}
export interface VideoSlots {
    poster?: () => any;
}
export declare const videoDefaultControlLayout: Readonly<Required<VideoControlLayout>>;
export declare const videoDefaultShortcuts: Readonly<{
    play: "Space";
    'play-prev': "PageUp";
    'play-next': "PageDown";
    refresh: "R";
    flip: "C";
    volume: "M";
    pip: "P";
    'full-window': "G";
    'full-browser': "F";
}>;
export declare const VIDEO_STATE: InjectionKey<VideoState>;
