import { type GenericId, type Infer, type Value, type VAny, type VArray, type VId } from "convex/values"; export declare const vFilterFieldValue: VArray<[GenericId<"namespaces">, Value], VId<"namespaces"> | VAny>; export type FilterFieldValue = Infer; export declare const filterFieldNames: ("filter0" | "filter1" | "filter2" | "filter3")[]; export type NamedFilterField = { [K in (typeof filterFieldNames)[number]]?: FilterFieldValue; }; export type NumberedFilter = Record; export declare const vAllFilterFields: { namespaceId: VId, "required">; filter0: VArray<[GenericId<"namespaces">, Value] | undefined, VId<"namespaces", "required"> | VAny, "optional">; filter1: VArray<[GenericId<"namespaces">, Value] | undefined, VId<"namespaces", "required"> | VAny, "optional">; filter2: VArray<[GenericId<"namespaces">, Value] | undefined, VId<"namespaces", "required"> | VAny, "optional">; filter3: VArray<[GenericId<"namespaces">, Value] | undefined, VId<"namespaces", "required"> | VAny, "optional">; }; export declare const allFilterFieldNames: ("filter0" | "filter1" | "filter2" | "filter3" | "namespaceId")[]; export declare const vNamedFilter: import("convex/values").VObject<{ name: string; value: any; }, { name: import("convex/values").VString; value: VAny; }, "required", "name" | "value" | `value.${string}`>; export type NamedFilter = { name: K; value: V; }; /** * { 1: "foo", 2: "bar" } * -> { filter1: ["namespace", "foo"], filter2: ["namespace", "bar"] } */ export declare function filterFieldsFromNumbers(namespaceId: GenericId<"namespaces">, filters: NumberedFilter | undefined): NamedFilterField; /** * [{ name: "Foo", value: "foo" }, { name: "Baz", value: "baz" }] * -> { 0: "foo", 2: "baz" } */ export declare function numberedFilterFromNamedFilters(namedFilters: Array<{ name: string; value: Value; }>, filterNames: string[]): NumberedFilter; /** * [{ name: "Foo", value: "foo" }, { name: "Baz", value: "baz" }] * -> [{ 0: "foo" }, { 2: "baz" }] */ export declare function numberedFiltersFromNamedFilters(filters: NamedFilter[], filterNames: string[]): Array; //# sourceMappingURL=filters.d.ts.map