import { GraphQLSchema, OperationDefinitionNode } from 'graphql';
import { Types } from '@graphql-codegen/plugin-helpers';
import { ClientSideBasePluginConfig, ClientSideBaseVisitor, LoadedFragment } from '@graphql-codegen/visitor-plugin-common';
import { ApolloAngularRawPluginConfig } from './config.cjs';
export interface ApolloAngularPluginConfig extends ClientSideBasePluginConfig {
    apolloAngularVersion: number;
    ngModule?: string;
    namedClient?: string;
    serviceName?: string;
    serviceProvidedInRoot?: boolean;
    serviceProvidedIn?: string;
    sdkClass?: boolean;
    querySuffix?: string;
    mutationSuffix?: string;
    subscriptionSuffix?: string;
    apolloAngularPackage: string;
    additionalDI?: string[];
    addExplicitOverride: boolean;
}
export declare class ApolloAngularVisitor extends ClientSideBaseVisitor<ApolloAngularRawPluginConfig, ApolloAngularPluginConfig> {
    private _allOperations;
    private _externalImportPrefix;
    private _operationsToInclude;
    private dependencyInjections;
    private dependencyInjectionArgs;
    constructor(schema: GraphQLSchema, fragments: LoadedFragment[], _allOperations: OperationDefinitionNode[], rawConfig: ApolloAngularRawPluginConfig, documents?: Types.DocumentFile[]);
    getImports(): string[];
    private _extractNgModule;
    private _parseNgModule;
    private _operationHasDirective;
    private _removeDirective;
    private _removeDirectives;
    private _extractDirective;
    protected _prepareDocument(documentStr: string): string;
    private _namedClient;
    private _extractNamedClient;
    private _providedIn;
    private _getDocumentNodeVariable;
    private _operationSuffix;
    protected buildOperation(node: OperationDefinitionNode, documentVariableName: string, operationType: string, operationResultType: string, operationVariablesTypes: string): string;
    get sdkClass(): string;
}
