///
import { EventEmitter } from './utils/eventmitter';
import { IController, IPlayerOptions } from './types';
import { Controller, IControllerEle } from './modules/controller';
import { Dispose } from './utils/dispose';
import { ISettingItem } from './modules/controller/eles/settings';
import { Rect } from './utils/rect';
import { WebFullscreen } from './features/web-fullscreen';
import { Fullscreen } from './features/fullscreen';
import { Poster } from './modules/poster';
import { Loading } from './modules/loading';
import { IMenuItem, Menu } from './modules/menu';
import { Toast } from './modules/toast';
import { Shortcut } from './features/shortcut';
export declare class Player extends EventEmitter implements Dispose {
container: HTMLElement | null;
el: HTMLDivElement;
options: Required;
readonly video: HTMLVideoElement;
toggleDelayTimer: NodeJS.Timeout | null;
toggleDelayFlag: boolean;
readonly rect: Rect;
readonly poster: Poster;
readonly loading: Loading;
readonly webFullscreen: WebFullscreen;
readonly fullscreen: Fullscreen;
readonly menu: Menu;
readonly toast: Toast;
readonly shortcut: Shortcut;
readonly controller: Controller;
private prevVolume;
private readonly controllerNameMap;
private readonly settingNamedMap;
private readonly menuNamedMap;
readonly settingItems: ISettingItem[];
constructor(opts?: IPlayerOptions);
mount(container?: IPlayerOptions['container']): void;
get currentTime(): number;
set currentTime(n: number);
get loaded(): boolean;
get duration(): number;
get buffered(): TimeRanges;
get paused(): boolean;
get ended(): boolean;
get playing(): boolean;
get volume(): number;
set volume(n: number);
get muted(): boolean;
set muted(v: boolean);
get loop(): boolean;
set loop(v: boolean);
get playbackRate(): number;
set playbackRate(n: number);
play(): Promise | void;
pause(): void;
seek(seconds: number): void;
incVolume(v?: number | undefined): void;
decVolume(v?: number | undefined): void;
forward(v?: number | undefined): void;
rewind(v?: number | undefined): void;
toggle: () => void;
toggleVolume(): void;
videoClickToggle(): void;
cancellVideoClickToggle(): void;
delayToggle: () => void;
clearToggleDelay: (isClick?: boolean | undefined) => void;
eachBuffer(fn: (start: number, end: number) => boolean | void): void;
registerControllerEle(ele: IControllerEle, id?: string): void;
getControllerEle(id: string): IControllerEle | undefined;
registerSettingItem(item: ISettingItem, id?: string): void;
getSettingItem(id: string): ISettingItem | undefined;
registerMenuItem(item: IMenuItem, id?: string): void;
getMenuItem(id: string): IMenuItem | undefined;
updateControllerEles(eles: Parameters[0], key: keyof IController): void;
dispose(): void;
}