export interface FullscreenControllerOptions { /** The root element to place into fullscreen. */ element: HTMLElement; /** Whether fullscreen is enabled for this viewer. */ enabled: boolean; /** * CSS class toggled on `element` as a faux-fullscreen fallback * when the Fullscreen API is unavailable (iOS Safari). */ fauxClassName?: string; /** Called on native `fullscreenchange` for the element. */ onChange?: (isFullscreen: boolean) => void; /** Abort signal used to tear down the fullscreenchange listener. */ signal?: AbortSignal; } /** * Fullscreen API wrapper (#14). Handles native * `requestFullscreen` / `exitFullscreen` and a CSS-class * faux-fullscreen for engines that refuse real fullscreen * (iOS Safari). */ export declare class FullscreenController { private readonly element; private readonly enabled; private readonly fauxClassName; private readonly onChange; constructor(options: FullscreenControllerOptions); /** Is the element currently in fullscreen (real or faux)? */ isFullscreen(): boolean; /** * Enter fullscreen. Prefers native requestFullscreen, falls back * to a CSS faux-fullscreen class. No-op when disabled. */ enter(): Promise; /** Exit fullscreen (real or faux). */ exit(): Promise; /** Toggle between windowed and fullscreen. */ toggle(): Promise; }