/**
 * GNOME / libadwaita canonical breakpoints (in CSS px, assuming 1 sp = 1 px at 1× density).
 *
 * | Name       | Max width | Pattern triggered |
 * |------------|-----------|-------------------|
 * | `narrow`   | ≤ 400 px  | Collapse split views; sidebar becomes overlay |
 * | `medium`   | ≤ 550 px  | Move ViewSwitcher to a bottom bar |
 * | `wide`     | ≤ 860 px  | Collapse outer pane in nested split views |
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Breakpoint.html
 */
export declare const GNOME_BREAKPOINTS: {
    /** ≤ 400 px — split views collapse to single pane */
    readonly narrow: 400;
    /** ≤ 550 px — ViewSwitcher moves to bottom bar */
    readonly medium: 550;
    /** ≤ 860 px — outer pane of nested split views collapses */
    readonly wide: 860;
};
export type GnomeBreakpointName = keyof typeof GNOME_BREAKPOINTS;
export interface BreakpointState {
    /** Width ≤ 400 px — split views are collapsed. */
    isNarrow: boolean;
    /** Width ≤ 550 px — medium or narrower. */
    isMedium: boolean;
    /** Width ≤ 860 px — wide or narrower. */
    isWide: boolean;
    /** Current viewport width in px. */
    width: number;
}
/**
 * Tracks the viewport width against GNOME / libadwaita breakpoints.
 *
 * Returns a reactive state object that updates on every window resize.
 * Uses a passive `resize` event listener and cleans up automatically.
 *
 * @example
 * const { isNarrow, isMedium } = useBreakpoint();
 * // isNarrow → true when viewport ≤ 400 px (split views should collapse)
 * // isMedium → true when viewport ≤ 550 px (use ViewSwitcherBar instead)
 */
export declare function useBreakpoint(): BreakpointState;
