/**
 * Document 对象扩展
 */
interface Document {
    /**
     * 检测当前浏览器是否为全屏
     *
     * @return 当前浏览器是否为全屏
     */
    readonly fullScreen: boolean;
    /**
     * 检测当前浏览器是否为全屏
     *
     * @return 当前浏览器是否为全屏
     */
    readonly fullscreen: boolean;
    /**
     * 检测当前浏览器是否为全屏
     *
     * @return 当前浏览器是否为全屏
     */
    readonly mozFullScreen: boolean;
    /**
     * 检测当前浏览器是否为全屏
     *
     * @return 当前浏览器是否为全屏
     */
    readonly webkitIsFullScreen: boolean;
    /**
     * 检测当前浏览器是否为全屏
     *
     * @return 当前浏览器是否为全屏
     */
    readonly msFullScreen: boolean;
    /**
     * 检测当前浏览器是否支持全屏模式
     *
     * @return 当前浏览器是否支持全屏模式
     */
    readonly mozFullScreenEnabled: boolean;
    /**
     * 检测当前浏览器是否支持全屏模式
     *
     * @return 当前浏览器是否支持全屏模式
     */
    readonly webkitFullscreenEnabled: boolean;
    /**
     * 检测当前浏览器是否支持全屏模式
     *
     * @return 当前浏览器是否支持全屏模式
     */
    readonly msFullscreenEnabled: boolean;
    /**
     * 获取当前处于全屏模式的 DOM 元素
     *
     * @return 当前处于全屏模式的 DOM 元素
     */
    readonly fullScreenElement: Element | null;
    /**
     * 获取当前处于全屏模式的 DOM 元素
     *
     * @return 当前处于全屏模式的 DOM 元素
     */
    readonly fullscreenElement: Element | null;
    /**
     * 获取当前处于全屏模式的 DOM 元素
     *
     * @return 当前处于全屏模式的 DOM 元素
     */
    readonly mozFullScreenElement: Element | null;
    /**
     * 获取当前处于全屏模式的 DOM 元素
     *
     * @return 当前处于全屏模式的 DOM 元素
     */
    readonly webkitFullscreenElement: Element | null;
    /**
     * 获取当前处于全屏模式的 DOM 元素
     *
     * @return 当前处于全屏模式的 DOM 元素
     */
    readonly msFullscreenElement: Element | null;
    /**
     * 获取 Cookie 对象
     *
     * @return Cookie 对象
     */
    readonly httpCookie: Cookie;
    /**
     * 请求进入全屏模式
     *
     * @return Promise
     */
    requestFullscreen(): Promise<void>;
    /**
     * 退出全屏模式
     *
     * @return Promise
     */
    exitFullscreen(): Promise<void>;
    /**
     * 退出全屏模式
     *
     * @return Promise
     */
    mozCancelFullScreen(): Promise<void>;
    /**
     * 退出全屏模式
     *
     * @return Promise
     */
    mozExitFullScreen(): Promise<void>;
    /**
     * 退出全屏模式
     *
     * @return Promise
     */
    webkitCancelFullScreen(): Promise<void>;
    /**
     * 请求进入全屏模式
     *
     * @return Promise
     */
    webkitExitFullscreen(): Promise<void>;
    /**
     * 请求进入全屏模式
     *
     * @return Promise
     */
    msExitFullscreen(): Promise<void>;
}
interface HTMLElement {
    /**
     * 请求进入全屏模式
     *
     * @return Promise
     */
    mozRequestFullScreen(): Promise<void>;
    /**
     * 请求进入全屏模式
     *
     * @return Promise
     */
    webkitRequestFullscreen(): Promise<void>;
    /**
     * 请求进入全屏模式
     *
     * @return Promise
     */
    msRequestFullscreen(): Promise<void>;
}
declare enum SameSite {
    NONE = "None",
    LAX = "Lax",
    STRICT = "Strict"
}
interface CookieOptions {
    /**
     * Cookie 作用域
     */
    domain?: String;
    /**
     * Cookie 作用路径
     */
    path?: String;
    /**
     * Cookie 过期时间
     */
    expires?: Number | Date;
    /**
     * 是否启用安全 Cookie
     */
    secure?: Boolean;
    /**
     * 是否为 HttpOnly
     */
    httpOnly?: Boolean;
    /**
     * SameSite
     */
    sameSite?: SameSite;
}
interface Cookie {
    /**
     * 设置 Cookie 值
     *
     * @param name Cookie 名称
     * @param value Cookie 值
     * @param options Cookie 选项
     * @return Cookie 值
     */
    set(name: string, value: string | null | undefined, options?: CookieOptions): string;
    /**
     * 获取 Cookie 值
     *
     * @param name Cookie 名称
     * @return Cookie 值；不存在时，返回 null
     */
    get(name: string): string | null;
    /**
     * 删除 Cookie
     *
     * @param name Cookie 名称
     * @param options Cookie 选项
     */
    delete(name: string, options?: CookieOptions): void;
}
declare class CookieInstance implements Cookie {
    constructor();
    set(name: string, value: string | null | undefined, options?: CookieOptions): string;
    get(name: string): string | null;
    delete(name: string, options?: CookieOptions): void;
}
