{
  "schemaVersion": 1,
  "package": "@fayegram-ai/faye-ui",
  "moduleGroup": "hooks",
  "entry": "@fayegram-ai/faye-ui/hooks",
  "source": "packages/hooks/src/index.ts",
  "clientBoundary": true,
  "declarations": [
    {
      "name": "useMediaQuery",
      "kind": "FunctionDeclaration",
      "signature": "export function useMediaQuery(query: string, serverMatches = false, ownerWindow?: Window)",
      "line": 4
    },
    {
      "name": "useReducedMotion",
      "kind": "FunctionDeclaration",
      "signature": "export function useReducedMotion(ownerWindow?: Window)",
      "line": 8
    },
    {
      "name": "ControllableOptions",
      "kind": "InterfaceDeclaration",
      "signature": "export interface ControllableOptions<T> {\n    value?: T;\n    defaultValue: T;\n    onChange?: (value: T) => void;\n}",
      "members": [
        {
          "name": "value",
          "optional": true,
          "type": "T"
        },
        {
          "name": "defaultValue",
          "optional": false,
          "type": "T"
        },
        {
          "name": "onChange",
          "optional": true,
          "type": "(value: T) => void"
        }
      ],
      "line": 9
    },
    {
      "name": "useControllableState",
      "kind": "FunctionDeclaration",
      "signature": "export function useControllableState<T>({ value, defaultValue, onChange }: ControllableOptions<T>): readonly [\n    T,\n    Dispatch<SetStateAction<T>>\n]",
      "line": 15
    },
    {
      "name": "useDebouncedValue",
      "kind": "FunctionDeclaration",
      "signature": "export function useDebouncedValue<T>(value: T, delay = 150): T",
      "line": 39
    },
    {
      "name": "useDisclosure",
      "kind": "FunctionDeclaration",
      "signature": "export function useDisclosure(initial = false)",
      "line": 46
    }
  ],
  "typesComplete": false,
  "typeScope": "Explicit source declarations plus dependency-resolved emitted exports. Full inherited/generic restrictions remain authoritative in installed declarations.",
  "compiledExports": [
    {
      "name": "useMediaQuery",
      "kind": "value",
      "type": "(query: string, serverMatches?: boolean, ownerWindow?: Window) => boolean",
      "description": "A stable server snapshot is mandatory for viewport-dependent markup. Prefer CSS for layout."
    },
    {
      "name": "useReducedMotion",
      "kind": "value",
      "type": "(ownerWindow?: Window) => boolean",
      "description": ""
    },
    {
      "name": "useControllableState",
      "kind": "value",
      "type": "<T>({ value, defaultValue, onChange }: ControllableOptions<T>) => readonly [T, Dispatch<SetStateAction<T>>]",
      "description": "Do not switch a control between controlled and uncontrolled during its lifetime."
    },
    {
      "name": "useDebouncedValue",
      "kind": "value",
      "type": "<T>(value: T, delay?: number) => T",
      "description": ""
    },
    {
      "name": "useDisclosure",
      "kind": "value",
      "type": "(initial?: boolean) => { open: boolean; setOpen: Dispatch<SetStateAction<boolean>>; show: () => void; hide: () => void; toggle: () => void; }",
      "description": ""
    },
    {
      "name": "ControllableOptions",
      "kind": "type",
      "type": "ControllableOptions<T>",
      "description": ""
    },
    {
      "name": "ClientOnly",
      "kind": "value",
      "type": "({ children, fallback }: { children: ReactNode | (() => ReactNode); fallback?: ReactNode; }) => ReactNode",
      "description": "Opt-in browser-only boundary. Never use it to silently bypass a component's SSR contract."
    },
    {
      "name": "useOutsidePress",
      "kind": "value",
      "type": "({ enabled, branches, onOutsidePress, ownerDocument }: OutsidePressOptions) => void",
      "description": "For custom non-modal surfaces. Existing Base UI overlays already own dismissal."
    },
    {
      "name": "OutsidePressOptions",
      "kind": "type",
      "type": "OutsidePressOptions",
      "description": ""
    },
    {
      "name": "ClickAwayListener",
      "kind": "value",
      "type": "({ onClickAway, enabled, branches, ownerDocument, children, ...props }: ClickAwayListenerProps) => import(\"react\").JSX.Element",
      "description": "A structural wrapper for custom surfaces. Do not add a second dismiss listener to Base UI overlays."
    },
    {
      "name": "ClickAwayListenerProps",
      "kind": "type",
      "type": "ClickAwayListenerProps",
      "description": ""
    },
    {
      "name": "useScrollTrigger",
      "kind": "value",
      "type": "({ target, targetRef, threshold, hysteresis, reducedMotion }?: ScrollTriggerOptions) => { scrollToTop: (behavior?: ScrollBehavior) => void; offset: number; direction: \"up\" | \"down\"; triggered: boolean; scrolled: boolean; }",
      "description": "Server starts at the top; subscribe to the window or a mounted, stable scroll container."
    },
    {
      "name": "ScrollTriggerOptions",
      "kind": "type",
      "type": "ScrollTriggerOptions",
      "description": ""
    }
  ],
  "declaration": "packages/faye-ui/dist/hooks/index.d.ts"
}
