type EventCallback = (this: Document, event_: Event) => void;
type OnChangeEventCallback = (this: Document, event_: Event, isOpen: boolean) => void;
type RequestFullscreenOptions = {
    navigationUI?: string | 'auto' | 'hide' | 'show';
};
type FullScreenOptions = {
    element?: HTMLElement;
    onChange?: OnChangeEventCallback;
    onError?: EventCallback;
    requestFullscreenOptions?: RequestFullscreenOptions;
};
type FullscreenApi = {
    requestFullscreen: VoidFunction | ((element?: HTMLElement | null) => Promise<unknown>);
    exitFullscreen: VoidFunction | (() => Promise<unknown>);
    toggleFullscreen: VoidFunction | ((element?: HTMLElement) => Promise<unknown>);
    isEnabled: boolean;
    isFullscreen: boolean;
};
/**
 * Custom hook to manage fullscreen functionality.
 *
 * @param options - Options for managing fullscreen behavior.
 */
declare const useFullscreen: (options?: FullScreenOptions) => FullscreenApi | {
    requestFullscreen: (newTargetElement: any) => Promise<any>;
    exitFullscreen: () => Promise<any>;
    toggleFullscreen: (newTargetElement: any) => void;
    isFullscreen: boolean;
    isEnabled: boolean;
};
export default useFullscreen;
