import type { EnumValues, FieldNullability, FieldRequiredness, InputFieldMap, InputType, InterfaceParam, ObjectParam, RootName, SchemaTypes, TypeParam } from '@pothos/core';
import type { DirectiveLocation, Directives } from './types.js';
import type { PothosDirectivesPlugin } from './index.js';
declare global {
    export namespace PothosSchemaTypes {
        interface Plugins<Types extends SchemaTypes> {
            directives: PothosDirectivesPlugin<Types>;
        }
        interface UserSchemaTypes {
            Directives: Record<string, {
                locations: DirectiveLocation;
                args?: Record<string, unknown>;
            }>;
        }
        interface ExtendDefaultTypes<PartialTypes extends Partial<UserSchemaTypes>> {
            Directives: PartialTypes["Directives"] & {};
        }
        interface SchemaBuilderOptions<Types extends SchemaTypes> {
            directives?: {
                useGraphQLToolsUnorderedDirectives?: boolean;
            };
        }
        interface V3SchemaBuilderOptions<Types extends SchemaTypes> {
            directives: never;
            useGraphQLToolsUnorderedDirectives?: boolean;
        }
        interface EnumTypeOptions<Types extends SchemaTypes = SchemaTypes, Values extends EnumValues<Types> = EnumValues<Types>> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "ENUM">;
        }
        interface ObjectTypeOptions<Types extends SchemaTypes = SchemaTypes, Shape = unknown> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "OBJECT">;
        }
        interface RootTypeOptions<Types extends SchemaTypes, Type extends RootName> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "OBJECT">;
        }
        interface InputObjectTypeOptions<Types extends SchemaTypes = SchemaTypes, Fields extends InputFieldMap = InputFieldMap> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "INPUT_OBJECT">;
        }
        interface InterfaceTypeOptions<Types extends SchemaTypes = SchemaTypes, Shape = unknown, Interfaces extends InterfaceParam<Types>[] = InterfaceParam<Types>[]> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "INTERFACE">;
        }
        interface UnionTypeOptions<Types extends SchemaTypes = SchemaTypes, Member extends ObjectParam<Types> = ObjectParam<Types>> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "UNION">;
        }
        interface ScalarTypeOptions<Types extends SchemaTypes = SchemaTypes, ScalarInputShape = unknown, ScalarOutputShape = unknown> extends BaseTypeOptions<Types> {
            directives?: Directives<Types, "SCALAR">;
        }
        interface FieldOptions<Types extends SchemaTypes = SchemaTypes, ParentShape = unknown, Type extends TypeParam<Types> = TypeParam<Types>, Nullable extends FieldNullability<Type> = FieldNullability<Type>, Args extends InputFieldMap = InputFieldMap, ResolveShape = unknown, ResolveReturnShape = unknown> {
            directives?: Directives<Types, "FIELD_DEFINITION">;
        }
        interface InputObjectFieldOptions<Types extends SchemaTypes = SchemaTypes, Type extends InputType<Types> | [
            InputType<Types>
        ] = InputType<Types> | [
            InputType<Types>
        ], Req extends FieldRequiredness<Type> = FieldRequiredness<Type>> {
            directives?: Directives<Types, "INPUT_FIELD_DEFINITION">;
        }
        interface ArgFieldOptions<Types extends SchemaTypes = SchemaTypes, Type extends InputType<Types> | [
            InputType<Types>
        ] = InputType<Types> | [
            InputType<Types>
        ], Req extends FieldRequiredness<Type> = FieldRequiredness<Type>> {
            directives?: Directives<Types, "ARGUMENT_DEFINITION">;
        }
        interface EnumValueConfig<Types extends SchemaTypes = SchemaTypes> {
            directives?: Directives<Types, "ENUM_VALUE">;
        }
        interface BuildSchemaOptions<Types extends SchemaTypes> {
            schemaDirectives?: Directives<Types, "SCHEMA">;
        }
    }
}
//# sourceMappingURL=global-types.d.ts.map
