import { FullscreenController, FullscreenControllerHost, ScreenOrientationController } from '@vidstack/foundation'; import { VideoPresentationChangeEvent, VideoPresentationController } from '../presentation'; /** * Extends the base `FullscreenController` with additional logic for handling fullscreen * on iOS Safari where the native Fullscreen API is not available (in this case it falls back to * using the `VideoPresentationController`). * * @example * ```ts * import { LitElement } from 'lit'; * import { * FullscreenController, * ScreenOrientationController, * VideoPresentationController * } from '@vidstack/elements'; * * class MyElement extends LitElement { * get videoElement() { * return this.videoEl; * } * * fullscreenController = new VideoFullscreenController( * this, * new ScreenOrientationController(this), * new VideoPresentationController(this), * ); * * async requestFullscreen() { * if (this.fullscreenController.isRequestingNativeFullscreen) { * return super.requestFullscreen(); * } * * return this.fullscreenController.requestFullscreen(); * } * * async exitFullscreen() { * return this.fullscreenController.exitFullscreen(); * } * } * ``` */ export declare class VideoFullscreenController extends FullscreenController { protected readonly _presentationController: VideoPresentationController; constructor(host: FullscreenControllerHost, screenOrientationController: ScreenOrientationController, _presentationController: VideoPresentationController); get isFullscreen(): boolean; get isSupported(): boolean; /** * Whether a fallback fullscreen API is available on Safari using presentation modes. This * is only used on iOS where the native fullscreen API is not available. * * @link https://developer.apple.com/documentation/webkitjs/htmlvideoelement/1631913-webkitpresentationmode */ get isSupportedOnSafari(): boolean; protected _makeEnterFullscreenRequest(): Promise; protected _makeFullscreenRequestOnSafari(): Promise; protected _makeExitFullscreenRequest(): Promise; protected _makeExitFullscreenRequestOnSafari(): Promise; protected _addFullscreenChangeEventListener(handler: (this: HTMLElement, event: Event) => void): () => void; protected _handlePresentationModeChange(event: VideoPresentationChangeEvent): void; protected _addFullscreenErrorEventListener(handler: (this: HTMLElement, event: Event) => void): () => void; } //# sourceMappingURL=VideoFullscreenController.d.ts.map