import { EnumTypeComposer, SchemaComposer, ObjectTypeComposer, InterfaceTypeComposer, ObjectTypeComposerRelationOpts, ObjectTypeComposerFieldConfigDefinition, ObjectTypeComposerFieldConfigMapDefinition, ObjectTypeComposerFieldConfigAsObjectDefinition } from 'graphql-compose'; import type { Model } from 'mongoose'; import { ComposeWithMongooseOpts } from '../composeWithMongoose'; import { GraphQLObjectType } from 'graphql-compose/lib/graphql'; export interface ComposeWithMongooseDiscriminatorsOpts extends ComposeWithMongooseOpts { reorderFields?: boolean | string[]; } export declare class DiscriminatorTypeComposer extends ObjectTypeComposer { discriminatorKey: string; opts: ComposeWithMongooseDiscriminatorsOpts; childTCs: ObjectTypeComposer[]; DInterface?: InterfaceTypeComposer; DKeyETC?: EnumTypeComposer; constructor(gqType: GraphQLObjectType, schemaComposer: SchemaComposer); static createFromModel(baseModel: Model, schemaComposer: SchemaComposer, opts?: ComposeWithMongooseDiscriminatorsOpts): DiscriminatorTypeComposer; _createDInterface(baseTC: DiscriminatorTypeComposer): InterfaceTypeComposer; getDKey(): string; getDKeyETC(): EnumTypeComposer; getDInterface(): InterfaceTypeComposer; hasChildTC(DName: string): boolean; discriminator>(childModel: Model, opts?: ComposeWithMongooseOpts): ObjectTypeComposer; setFields(fields: ObjectTypeComposerFieldConfigMapDefinition): this; setField(fieldName: string, fieldConfig: ObjectTypeComposerFieldConfigDefinition): this; addFields(newFields: ObjectTypeComposerFieldConfigMapDefinition): this; addNestedFields(newFields: ObjectTypeComposerFieldConfigMapDefinition): this; removeField(fieldNameOrArray: string | Array): this; removeOtherFields(fieldNameOrArray: string | Array): this; reorderFields(names: string[]): this; extendField(fieldName: string, partialFieldConfig: Partial>): this; makeFieldNonNull(fieldNameOrArray: string | Array): this; makeFieldNullable(fieldNameOrArray: string | Array): this; makeFieldPlural(fieldNameOrArray: string | Array): this; makeFieldNonPlural(fieldNameOrArray: string | Array): this; deprecateFields(fields: { [fieldName: string]: string; } | string[] | string): this; addRelation(fieldName: string, relationOpts: ObjectTypeComposerRelationOpts): this; } //# sourceMappingURL=DiscriminatorTypeComposer.d.ts.map