import { EnumTypeDefinitionNode, GraphQLSchema, ListTypeNode, NamedTypeNode, NonNullTypeNode } from 'graphql';
import type { FederationMeta } from '@graphql-codegen/plugin-helpers';
import { BaseResolversVisitor, DeclarationKind, ParsedResolversConfig } from '@graphql-codegen/visitor-plugin-common';
import { TypeScriptResolversPluginConfig } from './config.js';
export declare const ENUM_RESOLVERS_SIGNATURE = "export type EnumResolverSignature<T, AllowedValues = any> = { [key in keyof T]?: AllowedValues };";
export interface ParsedTypeScriptResolversConfig extends ParsedResolversConfig {
    useIndexSignature: boolean;
    wrapFieldDefinitions: boolean;
    allowParentTypeOverride: boolean;
    optionalInfoArgument: boolean;
}
export declare class TypeScriptResolversVisitor extends BaseResolversVisitor<TypeScriptResolversPluginConfig, ParsedTypeScriptResolversConfig> {
    constructor(pluginConfig: TypeScriptResolversPluginConfig, schema: GraphQLSchema, federationMeta: FederationMeta);
    protected transformParentGenericType(parentType: string): string;
    protected formatRootResolver(schemaTypeName: string, resolverType: string, declarationKind: DeclarationKind): string;
    private clearOptional;
    ListType(node: ListTypeNode): string;
    protected wrapWithListType(str: string): string;
    NamedType(node: NamedTypeNode): string;
    NonNullType(node: NonNullTypeNode): string;
    protected getPunctuation(_declarationKind: DeclarationKind): string;
    protected buildEnumResolverContentBlock(node: EnumTypeDefinitionNode, mappedEnumType: string): string;
    protected buildEnumResolversExplicitMappedValues(node: EnumTypeDefinitionNode, valuesMapping: {
        [valueName: string]: string | number;
    }): string;
}
