import * as graphql from 'graphql';
import type { Document, Config } from '.';
export declare function getRootType(type: graphql.GraphQLType): graphql.GraphQLType;
export declare function processComponentFieldDirective(directive: graphql.DirectiveNode): {
    field: string;
    prop: string;
    export?: string;
    raw?: string;
};
export declare function hashOriginal({ document }: {
    document: Document;
}): string;
export declare function hashRaw({ document }: {
    document: Document;
}): string;
type GraphQLParentType = graphql.GraphQLObjectType | graphql.GraphQLInputObjectType | graphql.GraphQLInterfaceType;
export declare function parentField(ancestors: readonly any[]): graphql.FieldNode | graphql.InlineFragmentNode | graphql.OperationDefinitionNode | graphql.FragmentDefinitionNode | null;
export declare function parentTypeFromAncestors(schema: graphql.GraphQLSchema, filepath: string, ancestors: readonly any[]): GraphQLParentType;
export declare function definitionFromAncestors(ancestors: readonly any[]): {
    parents: (graphql.OperationDefinitionNode | graphql.FragmentDefinitionNode | graphql.SelectionSetNode | graphql.FieldNode | graphql.InlineFragmentNode)[];
    definition: graphql.OperationDefinitionNode | graphql.FragmentDefinitionNode;
};
export declare function formatErrors(e: unknown, afterError?: (e: Error) => void): void;
export declare function operation_requires_variables(operation: graphql.OperationDefinitionNode): boolean;
export declare function unwrapType(config: Config, type: any, wrappers?: TypeWrapper[], convertRuntimeScalars?: boolean): {
    type: graphql.GraphQLNamedType;
    wrappers: TypeWrapper[];
};
export declare function wrapType({ type, wrappers, }: {
    type: graphql.GraphQLNamedType;
    wrappers: TypeWrapper[];
}): graphql.TypeNode;
export declare enum TypeWrapper {
    Nullable = "Nullable",
    List = "List",
    NonNull = "NonNull"
}
export {};
