import { TsVisitor } from '@graphql-codegen/typescript';
import { EnumTypeDefinitionNode, GraphQLSchema, InputObjectTypeDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, UnionTypeDefinitionNode } from 'graphql';
import { TypescriptOperationTypesPluginConfig } from './config';
export declare class SpecificTypesVisitor extends TsVisitor {
    private readonly includedTypes;
    constructor(schema: GraphQLSchema, pluginConfig: TypescriptOperationTypesPluginConfig, includedTypes: Map<string, boolean>);
    /**
     * We do not include the arguments types in this plugin as this should only be used mutations and queries which
     * either hard codes inputs or has input types. This therefore adds unneeded complexity and complicates discovering
     * input types that aren't actually used in the operations.
     */
    buildArgumentsBlock(): string;
    InputObjectTypeDefinition(node: InputObjectTypeDefinitionNode): string;
    ObjectTypeDefinition(node: ObjectTypeDefinitionNode, key: string | number, parent: unknown): string;
    EnumTypeDefinition(node: EnumTypeDefinitionNode): string;
    InterfaceTypeDefinition(node: InterfaceTypeDefinitionNode, key: number | string, parent: unknown): string;
    UnionTypeDefinition(node: UnionTypeDefinitionNode, key: number | string, parent: unknown): string;
}
