import { DeepMaybeObservable, Supportable, ReadonlyObservable } from '@usels/core'; import { ConfigurableWindow } from '../../shared/configurable.mjs'; import '@legendapp/state'; type OrientationType = "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; type OrientationLockType = "any" | "natural" | "landscape" | "portrait" | "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; type UseScreenOrientationOptions = ConfigurableWindow; interface UseScreenOrientationReturn extends Supportable { orientation$: ReadonlyObservable; angle$: ReadonlyObservable; lockOrientation: (type: OrientationLockType) => Promise; unlockOrientation: () => void; } /** * Framework-agnostic reactive wrapper around the * [Screen Orientation API](https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation). * * @param options - Optional `ConfigurableWindow` (defaults to global `window`). * @returns Observable orientation type, angle, support flag, and lock helpers. */ declare function createScreenOrientation(options?: DeepMaybeObservable): UseScreenOrientationReturn; export { type OrientationLockType, type OrientationType, type UseScreenOrientationOptions, type UseScreenOrientationReturn, createScreenOrientation };