import { z } from 'zod'; export declare const INCLUDE_ALL: "all"; export declare function buildIncludeSet(spec: readonly string[] | undefined, defaults: readonly string[], optional: readonly string[]): Set; export declare function projectFields>(obj: T, fields: ReadonlySet): Partial; export declare function projectContext>(ctx: T, fields: ReadonlySet, always?: readonly (keyof T & string)[]): Partial; type IncludeSchemaOpts = { defaults: readonly T[]; optional: readonly T[]; noun?: string; describeExtra?: string; }; export declare function includeFieldSchema(opts: IncludeSchemaOpts): z.ZodOptional, "many">>; export declare function sortFieldSchema(opts: { fields: readonly T[]; desc?: string; }): z.ZodObject<{ field: z.ZodEnum<[T, ...T[]]>; direction: z.ZodEnum<["asc", "desc"]>; }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks; direction: z.ZodEnum<["asc", "desc"]>; }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{ field: z.ZodEnum<[T, ...T[]]>; direction: z.ZodEnum<["asc", "desc"]>; }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>; export {}; //# sourceMappingURL=projection.d.ts.map