export type FullscreenTarget = string | HTMLElement | null | undefined;
declare global {
interface HTMLElement {
webkitRequestFullscreen?: () => Promise;
mozRequestFullScreen?: () => Promise;
msRequestFullscreen?: () => Promise;
}
interface Document {
webkitFullscreenElement?: Element | null;
mozFullScreenElement?: Element | null;
msFullscreenElement?: Element | null;
webkitExitFullscreen?: () => Promise;
mozCancelFullScreen?: () => Promise;
msExitFullscreen?: () => Promise;
}
}
/**
* 进入全屏
* @param target 目标元素(选择器字符串或 DOM 元素),不传则全屏 documentElement
* @returns Promise
*/
export declare function enterFullscreen(target?: FullscreenTarget): Promise;
/**
* 退出全屏
* @returns Promise
*/
export declare function exitFullscreen(): Promise;
/**
* 切换全屏状态
* @param target 目标元素
* @returns Promise 切换后是否处于全屏
*/
export declare function toggleFullscreen(target?: FullscreenTarget): Promise;
/**
* 判断是否处于全屏状态
* @returns boolean
*/
export declare function isFullscreen(): boolean;
/**
* 获取当前全屏元素
* @returns Element | null
*/
export declare function getFullscreenElement(): Element | null;
/**
* 监听全屏变化
* @param callback 回调函数,参数为 (isFullscreen, element)
* @returns 取消监听的函数
*/
export declare function onFullscreenChange(callback: (isFullscreen: boolean, element: Element | null) => void): () => void;
declare const _default: {
enter: typeof enterFullscreen;
exit: typeof exitFullscreen;
toggle: typeof toggleFullscreen;
isFullscreen: typeof isFullscreen;
getElement: typeof getFullscreenElement;
onChange: typeof onFullscreenChange;
};
export default _default;