import type { CompatibleTypes, ExposeNullability, FieldKind, FieldNullability, FieldOptionsFromKind, InferredFieldOptionKeys, NormalizeArgs, SchemaTypes, TypeParam } from '../types/index.js'; import { RootFieldBuilder } from './root.js'; export declare class FieldBuilder extends RootFieldBuilder { /** * Create a Boolean field from a boolean property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeBoolean, ResolveReturnShape, Nullable extends FieldNullability<"Boolean"> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Boolean" extends infer T ? T extends "Boolean" ? T extends keyof Types["outputShapes"] ? Types["outputShapes"][T] : T extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "Boolean" extends infer T_1 ? T_1 extends "Boolean" ? T_1 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_1] : T_1 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never : Nullable extends true ? ("Boolean" extends infer T_2 ? T_2 extends "Boolean" ? T_2 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_2] : T_2 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "Boolean" extends infer T_3 ? T_3 extends "Boolean" ? T_3 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_3] : T_3 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never, Kind>; /** * Create a Float field from a numeric property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeFloat, ResolveReturnShape, Nullable extends FieldNullability<"Float"> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Float" extends infer T ? T extends "Float" ? T extends keyof Types["outputShapes"] ? Types["outputShapes"][T] : T extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "Float" extends infer T_1 ? T_1 extends "Float" ? T_1 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_1] : T_1 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never : Nullable extends true ? ("Float" extends infer T_2 ? T_2 extends "Float" ? T_2 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_2] : T_2 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "Float" extends infer T_3 ? T_3 extends "Float" ? T_3 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_3] : T_3 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never, Kind>; /** * Create an ID field from a property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeID, ResolveReturnShape, Nullable extends FieldNullability<"ID"> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("ID" extends infer T ? T extends "ID" ? T extends keyof Types["outputShapes"] ? Types["outputShapes"][T] : T extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "ID" extends infer T_1 ? T_1 extends "ID" ? T_1 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_1] : T_1 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never : Nullable extends true ? ("ID" extends infer T_2 ? T_2 extends "ID" ? T_2 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_2] : T_2 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "ID" extends infer T_3 ? T_3 extends "ID" ? T_3 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_3] : T_3 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never, Kind>; /** * Create an Int field from a numeric property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeInt, ResolveReturnShape, Nullable extends FieldNullability<"Int"> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Int" extends infer T ? T extends "Int" ? T extends keyof Types["outputShapes"] ? Types["outputShapes"][T] : T extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "Int" extends infer T_1 ? T_1 extends "Int" ? T_1 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_1] : T_1 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never : Nullable extends true ? ("Int" extends infer T_2 ? T_2 extends "Int" ? T_2 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_2] : T_2 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "Int" extends infer T_3 ? T_3 extends "Int" ? T_3 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_3] : T_3 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never, Kind>; /** * Create a String field from a string property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeString, ResolveReturnShape, Nullable extends FieldNullability<"String"> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("String" extends infer T ? T extends "String" ? T extends keyof Types["outputShapes"] ? Types["outputShapes"][T] : T extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "String" extends infer T_1 ? T_1 extends "String" ? T_1 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_1] : T_1 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never : Nullable extends true ? ("String" extends infer T_2 ? T_2 extends "String" ? T_2 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_2] : T_2 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never) | null | undefined : "String" extends infer T_3 ? T_3 extends "String" ? T_3 extends keyof Types["outputShapes"] ? Types["outputShapes"][T_3] : T_3 extends import("../index.js").BaseEnum ? import("../index.js").ValuesFromEnum : never : never : never, Kind>; /** * Create a Boolean list field from a boolean[] property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeBooleanList, ResolveReturnShape, Nullable extends FieldNullability<[ "Boolean" ]> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef, Kind>; /** * Create a Float list field from a number[] property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeFloatList, ResolveReturnShape, Nullable extends FieldNullability<[ "Float" ]> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef, Kind>; /** * Create an ID list field from an id[] property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeIDList, ResolveReturnShape, Nullable extends FieldNullability<[ "ID" ]> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef, Kind>; /** * Create a Int list field from a number[] property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeIntList, ResolveReturnShape, Nullable extends FieldNullability<[ "Int" ]> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef, Kind>; /** * Create a String list field from a string[] property on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ exposeStringList, ResolveReturnShape, Nullable extends FieldNullability<[ "String" ]> = Types["DefaultFieldNullability"]>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | "type" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef, Kind>; /** * Create a field that resolves to a property of the corresponding type on the parent object * @param {string} name - the name of the property on the source object (does not need to match the field name). * @param {object} [options={}] - Options for this field */ expose, Nullable extends FieldNullability, ResolveReturnShape, Name extends CompatibleTypes>(name: Name extends keyof ParentShape ? Name : keyof ParentShape, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "nullable" | InferredFieldOptionKeys> ]>): import("../refs/field.js").FieldRef["type"], (false & (Type extends [ unknown ] ? Awaited extends readonly (infer T)[] | null | undefined ? [ T ] extends [ NonNullable ] ? (readonly T[] | null | undefined) & Awaited extends readonly T[] & Awaited ? boolean | { items: boolean; list: boolean; } : true | { items: boolean; list: true; } : (readonly T[] | null | undefined) & Awaited extends readonly T[] & Awaited ? { items: true; list: boolean; } : { items: true; list: true; } : never : Awaited extends NonNullable> ? boolean : true) & Nullable) | (true & (Type extends [ unknown ] ? Awaited extends readonly (infer T)[] | null | undefined ? [ T ] extends [ NonNullable ] ? (readonly T[] | null | undefined) & Awaited extends readonly T[] & Awaited ? boolean | { items: boolean; list: boolean; } : true | { items: boolean; list: true; } : (readonly T[] | null | undefined) & Awaited extends readonly T[] & Awaited ? { items: true; list: boolean; } : { items: true; list: true; } : never : Awaited extends NonNullable> ? boolean : true) & Nullable) | ((Type extends [ unknown ] ? boolean | { items: boolean; list: boolean; } : boolean) & (Type extends [ unknown ] ? Awaited extends readonly (infer T)[] | null | undefined ? [ T ] extends [ NonNullable ] ? (readonly T[] | null | undefined) & Awaited extends readonly T[] & Awaited ? boolean | { items: boolean; list: boolean; } : true | { items: boolean; list: true; } : (readonly T[] | null | undefined) & Awaited extends readonly T[] & Awaited ? { items: true; list: boolean; } : { items: true; list: true; } : never : Awaited extends NonNullable> ? boolean : true) & Nullable)>, Kind>; } //# sourceMappingURL=builder.d.ts.map