import { FragmentDefinitionNode, GraphQLNamedType, GraphQLOutputType, GraphQLSchema, OperationDefinitionNode, SelectionNode } from 'graphql';
import { JavaDeclarationBlock } from '@graphql-codegen/java-common';
import { LoadedFragment } from '@graphql-codegen/visitor-plugin-common';
import { BaseJavaVisitor } from './base-java-visitor.cjs';
import { JavaApolloAndroidPluginConfig } from './plugin.cjs';
import { VisitorConfig } from './visitor-config.cjs';
export interface ChildField {
    type: GraphQLNamedType;
    rawType: GraphQLOutputType;
    isNonNull: boolean;
    isList: boolean;
    annotation: string;
    className: string;
    fieldName: string;
    isObject: boolean;
    isFragment: boolean;
}
export interface TransformSelectionSetOptions {
    nonStaticClass?: boolean;
    additionalFragments?: LoadedFragment[];
    additionalFields?: ChildField[];
    className: string;
    schemaType: GraphQLNamedType;
    implements?: string[];
    selectionSet: ReadonlyArray<SelectionNode>;
    result: {
        [typeName: string]: JavaDeclarationBlock;
    };
}
export declare class OperationVisitor extends BaseJavaVisitor<VisitorConfig> {
    private _availableFragments;
    private visitingFragment;
    constructor(_schema: GraphQLSchema, rawConfig: JavaApolloAndroidPluginConfig, _availableFragments: LoadedFragment[]);
    private printDocument;
    getPackage(): string;
    private addCtor;
    private getRootType;
    private createUniqueClassName;
    private transformSelectionSet;
    private getReaderFn;
    private buildMapperClass;
    private _resolveResponseFieldMethodForBaseType;
    FragmentDefinition(node: FragmentDefinitionNode): string;
    OperationDefinition(node: OperationDefinitionNode): string;
    private createVariablesClass;
    private _getWriterMethodByType;
    private createBuilderClass;
}
