diff --git a/types/screenfull/index.d.ts b/types/screenfull/index.d.ts index 0ca3d642b9..2c7b93e453 100644 --- a/types/screenfull/index.d.ts +++ b/types/screenfull/index.d.ts @@ -1,36 +1,85 @@ -// Type definitions for screenfull.js 3.3.3 +// Type definitions for screenfull.js 4.0 // Project: https://github.com/sindresorhus/screenfull.js // Definitions by: Ilia Choly // lionelb // Joel Shepherd +// BendingBender // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.5 -declare var screenfull: IScreenfull | false; - -interface IScreenfullRaw { - requestFullscreen?: string; - exitFullscreen?: string; - fullscreenElement?: string; - fullscreenEnabled?: string; - fullscreenchange?: string; - fullscreenerror?: string; -} - -interface IScreenfull { - isFullscreen: boolean; - element: Element; - enabled: boolean; - raw: IScreenfullRaw; - request(elem?: Element): void; - toggle(elem?: Element): void; - exit(): void; - onchange(handler: () => void): void; - onerror(handler: (event: Event) => void): void; - on(name: EventNameMap, handler: (event: Event) => void): void; - off(name: EventNameMap, handler: (event: Event) => void): void; -} - -type EventNameMap = 'change' | 'error'; - export = screenfull; +export as namespace screenfull; + +declare const screenfull: screenfull.Screenfull | false; + +declare namespace screenfull { + interface Screenfull { + /** + * Returns a boolean whether fullscreen is active. + */ + readonly isFullscreen: boolean; + /** + * Returns the element currently in fullscreen, otherwise `null`. + */ + readonly element: Element | null; + /** + * Returns a boolean whether you are allowed to enter fullscreen. If your page is inside an `