import { GraphQLSchema, ExecutionResult, GraphQLArgs } from 'graphql';
import { CreateGraphQLHandlerOptions } from './types';
import { ResolverMapMiddleware, ResolverMap, ScalarMap } from '../types';
import { PackOptions } from '../pack/types';
export declare class GraphQLHandler {
    state: PackOptions['state'];
    protected packed: boolean;
    protected packOptions: PackOptions;
    protected middlewares: ResolverMapMiddleware[];
    protected graphqlSchema: GraphQLSchema;
    protected initialContext: GraphQLArgs['contextValue'];
    protected initialResolverMap: ResolverMap;
    protected scalarMap: ScalarMap;
    constructor(options: CreateGraphQLHandlerOptions);
    applyMiddlewares(middlewares: ResolverMapMiddleware[], options?: {
        reset?: boolean;
    }): void;
    query<DataResult = any>(query: GraphQLArgs['source'], variableValues?: GraphQLArgs['variableValues'], queryContext?: GraphQLArgs['contextValue'], graphqlArgs?: Partial<GraphQLArgs>): Promise<ExecutionResult<DataResult>>;
    protected pack(): Promise<void>;
}
