import { GraphQLSchema, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, UnionTypeDefinitionNode } from 'graphql';
import { BaseVisitor, ParsedConfig } from '@graphql-codegen/visitor-plugin-common';
import { TypeScriptMongoPluginConfig } from './config.cjs';
export interface TypeScriptMongoPluginParsedConfig extends ParsedConfig {
    dbTypeSuffix: string;
    dbInterfaceSuffix: string;
    objectIdType: string;
    objectIdImport: string;
    idFieldName: string;
    enumsAsString: boolean;
    avoidOptionals: boolean;
}
export declare class TsMongoVisitor extends BaseVisitor<TypeScriptMongoPluginConfig, TypeScriptMongoPluginParsedConfig> {
    private _schema;
    constructor(_schema: GraphQLSchema, pluginConfig: TypeScriptMongoPluginConfig);
    get objectIdImport(): string;
    private _resolveDirectiveValue;
    private _getDirectiveArgValue;
    private _getDirectiveFromAstNode;
    private _buildInterfaces;
    private _handleIdField;
    private _handleLinkField;
    private _handleColumnField;
    private _handleEmbeddedField;
    private _buildFieldsTree;
    private _addAdditionalFields;
    InterfaceTypeDefinition(node: InterfaceTypeDefinitionNode): string;
    UnionTypeDefinition(node: UnionTypeDefinitionNode): string;
    ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string;
}
