import { WritableComputedRef } from 'vue';
type QueryDefaults<T> = {
    [K in keyof T]?: T[K];
};
type QueryResult<T, D extends QueryDefaults<T>> = {
    [K in keyof T]: WritableComputedRef<K extends keyof D ? NonNullable<T[K]> : T[K] | undefined>;
};
/**
 * Reactive URL query param bindings.
 * Each key becomes a writable computed that reads/writes a single query param.
 *
 * @example
 * const q = useQuery<{ search: string; page: string }>({ page: '1' })
 * q.search.value = 'hello'  // → ?search=hello&page=1
 */
export declare function useQuery<T extends Record<string, string> = Record<string, string>, D extends QueryDefaults<T> = QueryDefaults<T>>(defaults?: D): QueryResult<T, D>;
export {};
//# sourceMappingURL=useQuery.d.ts.map