import { DefinitionNode, DocumentNode, GraphQLSchema, Source } from 'graphql'; declare type Omit = Pick>; declare type CompareFn = (a: T, b: T) => number; export interface Config { /** * Produces `schema { query: ..., mutation: ..., subscription: ... }` * * Default: true */ useSchemaDefinition?: boolean; /** * Creates schema definition, even when no types are available * Produces: `schema { query: Query }` * * Default: false */ forceSchemaDefinition?: boolean; /** * Throws an error on a merge conflict * * Default: false */ throwOnConflict?: boolean; /** * Descriptions are defined as preceding string literals, however an older * experimental version of the SDL supported preceding comments as * descriptions. Set to true to enable this deprecated behavior. * This option is provided to ease adoption and will be removed in v16. * * Default: false */ commentDescriptions?: boolean; /** * Puts the next directive first. * * Default: false * * @example: * Given: * ```graphql * type User { a: String @foo } * type User { a: String @bar } * ``` * * Results: * ``` * type User { a: @bar @foo } * ``` */ reverseDirectives?: boolean; exclusions?: string[]; sort?: boolean | CompareFn; convertExtensions?: boolean; } export declare function mergeGraphQLSchemas(types: Array, config?: Omit, 'commentDescriptions'>): DefinitionNode[]; export declare function mergeTypeDefs(types: Array): DocumentNode; export declare function mergeTypeDefs(types: Array, config?: Partial & { commentDescriptions: true; }): string; export declare function mergeTypeDefs(types: Array, config?: Omit, 'commentDescriptions'>): DocumentNode; export declare function mergeGraphQLTypes(types: Array, config: Config): DefinitionNode[]; export {};