import { type CompatibleTypes, type ExposeNullability, type FieldKind, type FieldRef, type InferredFieldOptionKeys, type InputFieldMap, type InterfaceParam, type NormalizeArgs, ObjectRef, type PluginName, type SchemaTypes, type ShapeFromTypeParam, type TypeParam } from '@pothos/core'; import type { PrismaRef } from './interface-ref.js'; import type { PrismaConnectionShape, PrismaModelTypes, RelatedConnectionOptions, RelatedFieldOptions, RelationCountOptions, ShapeFromConnection, TypesForRelation, VariantFieldOptions } from './types.js'; import type { FieldMap } from './util/relation-map.js'; declare const RootBuilder: { new (builder: PothosSchemaTypes.SchemaBuilder, kind: FieldKind, graphqlKind: PothosSchemaTypes.PothosKindToGraphQLType[FieldKind]): PothosSchemaTypes.RootFieldBuilder; }; type ContextForAuth = PothosSchemaTypes.ScopeAuthContextForAuth extends { Context: infer T; } ? T extends object ? T : object : object; type FieldAuthScopes = PothosSchemaTypes.ScopeAuthFieldAuthScopes extends { Scopes: infer T; } ? T : never; export declare class PrismaObjectFieldBuilder extends RootBuilder { model: string; prismaFieldMap: FieldMap; exposeBoolean: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => 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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").ValuesFromEnum : never : never : never, "PrismaObject">; exposeFloat: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => 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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").ValuesFromEnum : never : never : never, "PrismaObject">; exposeInt: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => 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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").ValuesFromEnum : never : never : never, "PrismaObject">; exposeID: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => 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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").ValuesFromEnum : never : never : never, "PrismaObject">; exposeString: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => 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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").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("@pothos/core").BaseEnum ? import("@pothos/core").ValuesFromEnum : never : never : never, "PrismaObject">; exposeBooleanList: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => FieldRef, "PrismaObject">; exposeFloatList: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => FieldRef, "PrismaObject">; exposeIntList: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => FieldRef, "PrismaObject">; exposeIDList: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => FieldRef, "PrismaObject">; exposeStringList: >(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "type" | "resolve" | "nullable" | "select"> & { description?: string | false; } ], 0>) => FieldRef, "PrismaObject">; withAuth: "scopeAuth" extends PluginName ? >>(scopes: Scopes) => PothosSchemaTypes.PrismaObjectFieldBuilder & { Context: ContextForAuth; }, Model, Shape> : "@pothos/plugin-scope-auth is required to use this method"; relatedConnection: "relay" extends PluginName ? [] = [ ], const EdgeInterfaces extends InterfaceParam[] = [ ], Type = unknown, Shape = Type extends PrismaRef ? Type["$inferType"] : TypesForRelation["Shape"]>(field: Field, options: RelatedConnectionOptions, ...args: NormalizeArgs<[ connectionOptions: ObjectRef>> | PothosSchemaTypes.ConnectionObjectOptions ], Nullable>>, false, false, PrismaConnectionShape ], Nullable>, Shape, Args>, ConnectionInterfaces>, edgeOptions: ObjectRef | PothosSchemaTypes.ConnectionEdgeObjectOptions ], Nullable>>, false, PrismaConnectionShape ], Nullable>, Shape, Args>, EdgeInterfaces> ], 0>) => FieldRef>> : "@pothos/plugin-relay is required to use this method"; typename: string; constructor(typename: string, builder: PothosSchemaTypes.SchemaBuilder, model: string, fieldMap: FieldMap, graphqlKind?: PothosSchemaTypes.PothosKindToGraphQLType[FieldKind]); relation(name: Field, ...allArgs: NormalizeArgs<[ options: RelatedFieldOptions ]>): FieldRef; relationCount(name: Field, ...allArgs: NormalizeArgs<[ options: RelationCountOptions["Where"], Args> ]>): FieldRef; variant, Args extends InputFieldMap, Nullable>(variant: Variant, ...allArgs: NormalizeArgs<[ options: VariantFieldOptions ? Variant : PrismaRef, Args, Nullable, Shape> ]>): FieldRef; expose, Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes>(name: Name, ...args: NormalizeArgs<[ options: ExposeNullability & Omit, "description" | "nullable" | "select" | InferredFieldOptionKeys> & { description?: string | false; } ]>): FieldRef, "PrismaObject">; private createExpose; } export {}; //# sourceMappingURL=prisma-field-builder.d.ts.map