import './global-types.js';
import './schema-builder.js';
import { BasePlugin, type PothosEnumValueConfig, type PothosInputFieldConfig, type PothosOutputFieldConfig, type PothosTypeConfig, type SchemaTypes } from '@pothos/core';
export { hasResolvableKey } from './schema-builder.js';
export * from './types.js';
declare const pluginName = "federation";
export default pluginName;
export declare class PothosFederationPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
    onTypeConfig(typeConfig: PothosTypeConfig): {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        values: import("graphql").ThunkObjMap<import("graphql").GraphQLEnumValueConfig>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").EnumTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").EnumTypeExtensionNode>>;
        kind: 'Enum';
        graphqlKind: 'Enum';
        pothosOptions: PothosSchemaTypes.EnumTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").InputObjectTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").InputObjectTypeExtensionNode>>;
        isOneOf?: boolean;
        kind: 'InputObject';
        graphqlKind: 'InputObject';
        pothosOptions: PothosSchemaTypes.InputObjectTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        resolveType?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLTypeResolver<unknown, object>>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").InterfaceTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").InterfaceTypeExtensionNode>>;
        kind: 'Interface';
        graphqlKind: 'Interface';
        interfaces: import("@pothos/core").InterfaceParam<SchemaTypes>[];
        pothosOptions: PothosSchemaTypes.InterfaceTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
        kind: 'Mutation';
        graphqlKind: 'Object';
        pothosOptions: PothosSchemaTypes.MutationTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
        kind: 'Object';
        graphqlKind: 'Object';
        interfaces: import("@pothos/core").InterfaceParam<SchemaTypes>[];
        pothosOptions: PothosSchemaTypes.ObjectTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
        kind: 'Query';
        graphqlKind: 'Object';
        pothosOptions: PothosSchemaTypes.QueryTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        specifiedByURL?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        serialize?: import("graphql").GraphQLScalarSerializer<unknown> | undefined;
        parseValue?: import("graphql").GraphQLScalarValueParser<unknown> | undefined;
        parseLiteral?: import("graphql").GraphQLScalarLiteralParser<unknown> | undefined;
        coerceOutputValue?: import("graphql").GraphQLScalarOutputValueCoercer<unknown> | undefined;
        coerceInputValue?: import("graphql").GraphQLScalarInputValueCoercer<unknown> | undefined;
        coerceInputLiteral?: import("graphql").GraphQLScalarInputLiteralCoercer<unknown> | undefined;
        valueToLiteral?: import("graphql/type/definition.js").GraphQLScalarValueToLiteral | undefined;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ScalarTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ScalarTypeExtensionNode>>;
        kind: 'Scalar';
        graphqlKind: 'Scalar';
        pothosOptions: PothosSchemaTypes.ScalarTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
        kind: 'Subscription';
        graphqlKind: 'Object';
        pothosOptions: PothosSchemaTypes.SubscriptionTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    } | {
        name: string;
        description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
        resolveType?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLTypeResolver<unknown, object>>;
        astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").UnionTypeDefinitionNode>;
        extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").UnionTypeExtensionNode>>;
        kind: 'Union';
        graphqlKind: 'Union';
        types: import("@pothos/core").ObjectParam<SchemaTypes>[];
        pothosOptions: PothosSchemaTypes.UnionTypeOptions;
        extensions: {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        } | {
            apollo: unknown;
            directives: {
                name: string;
                args?: object;
            }[];
        };
    };
    onOutputFieldConfig(fieldConfig: PothosOutputFieldConfig<Types>): PothosOutputFieldConfig<Types> | null;
    onInputFieldConfig(fieldConfig: PothosInputFieldConfig<Types>): PothosInputFieldConfig<Types>;
    onEnumValueConfig(valueConfig: PothosEnumValueConfig<Types>): PothosEnumValueConfig<Types>;
}
//# sourceMappingURL=index.d.ts.map