import { Observable } from '@legendapp/state'; import { MaybeObservable, DeepMaybeObservable } from '@usels/core'; import { ConfigurableWindow } from '../../shared/configurable.mjs'; /** * Statically evaluate a CSS media query against a known viewport width. * * Supports `min-width` / `max-width` / `not all` in comma-separated queries. * Used by the SSR path so server-rendered markup and the first client render * can agree on the initial value. */ declare function evaluateSSRQuery(query: string, ssrWidth: number): boolean; interface UseMediaQueryOptions extends ConfigurableWindow { /** * Static viewport width used to evaluate `min-width` / `max-width` queries * when `window.matchMedia` is unavailable (SSR). */ ssrWidth?: number; } type UseMediaQueryReturn = Observable; /** * Framework-agnostic reactive CSS media query tracker. * * Creates a `MediaQueryList` for the given query (reactive — accepts * `MaybeObservable`) and subscribes to its `change` events via * `createEventListener`. Re-creates the `MediaQueryList` when the query or * the resolved window changes. Must be called inside a `useScope` factory. * * @param query - CSS media query (plain string or `Observable`). * @param options - Optional `{ window?, ssrWidth? }`. * @returns `Observable` that reflects `mql.matches` (or the SSR * fallback when `matchMedia` is unavailable). */ declare function createMediaQuery(query: MaybeObservable, options?: DeepMaybeObservable): UseMediaQueryReturn; export { type UseMediaQueryOptions, type UseMediaQueryReturn, createMediaQuery, evaluateSSRQuery };