export { R as RouteParamsInput, l as loadRouteParams, p as parseRouteParams } from '../params-BALtrRim.js'; import { Parser } from './parsers.js'; export { ArrayParserOptions, asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, inferParserType } from './parsers.js'; /** * Farm.js Client-Side Query State Management * * Type-safe URL search parameter state management - Like useState, but stored in the URL query string. * Client-only hooks for managing query parameters in the browser. * Inspired by nuqs implementation patterns. */ type UrlUpdateType = "push" | "replace"; type HistoryMethod = "pushState" | "replaceState"; interface Options { history?: HistoryMethod; shallow?: boolean; scroll?: boolean; throttleMs?: number; } declare function useQueryState>(key: string, parser: TParser, options?: Options): [ NonNullable> | null, (value: NonNullable> | null) => void ]; declare function useQueryState(key: string, parser: Parser, options?: Options): [T | null, (value: T | null) => void]; declare function useQueryStates>>(parsers: T, options?: Options): [ { [K in keyof T]: ReturnType; }, (updates: Partial<{ [K in keyof T]: ReturnType | null; }>) => void ]; declare function usePagination(options?: { defaultPage?: number; defaultLimit?: number; pageKey?: string; limitKey?: string; }): { page: number; setPage: (value: number | null) => void; limit: number; setLimit: (value: number | null) => void; offset: number; resetPagination: () => void; }; declare function useSearchFilters>(options?: { searchKey?: string; defaultFilters?: T; filterKeys?: (keyof T)[]; }): { search: string | null; setSearch: (value: string | null) => void; filters: T; setFilters: (updates: Partial<{ [x: string]: string | null; }>) => void; clearFilters: () => void; }; export { type HistoryMethod, type Options, Parser, type UrlUpdateType, usePagination, useQueryState, useQueryStates, useSearchFilters };