import type { MaybeRefOrGetter, Ref } from 'vue'; import type { LocationQueryValue } from 'vue-router'; type RouteQueryValueRaw = LocationQueryValue | LocationQueryValue[] | undefined; type QueryTransformGetter = (queryOrDefault: Default | RouteQueryValueRaw) => Value; type QueryTransform = QueryTransformGetter | ({ get?: QueryTransformGetter; set?: (value: Value) => RouteQueryValueRaw; }); interface Transforms { number: QueryTransformGetter; boolean: QueryTransformGetter; date: QueryTransformGetter; dateRange: QueryTransform<{ end: string; start: string; } | Default>; arrayString: QueryTransformGetter; } type GetTransform = keyof { [P in keyof Transforms as Transforms[P] extends QueryTransform ? P : never]: P; }; export type GetQueryTransforms = { [P in keyof T as T[P] extends Exclude ? never : P]: GetTransform | QueryTransform; } & { [P in keyof T as T[P] extends Exclude ? P : never]?: GetTransform | QueryTransform; }; export declare function useQueryState>(defaults: MaybeRefOrGetter, stateTransforms: GetQueryTransforms): Ref; export {};