import { GraphQLResolveInfo } from "graphql"; declare type HighResolutionTime = [number, number]; declare const traceHRStartTime: unique symbol; declare const traceWallStartTime: unique symbol; export declare const apolloTracingContext: unique symbol; export interface ApolloTracingContext { [traceHRStartTime]: HighResolutionTime; [traceWallStartTime]: Date; version: 1; startTime: string; endTime: string; duration: number; execution: { parsing?: { startOffset: number; duration: number; }; validation?: { startOffset: number; duration: number; }; resolvers: ApolloTracingResolverStats[]; }; } export interface ApolloTracingResolverStats { path: (string | number)[]; parentType: string; fieldName: string; returnType: string; startOffset: number; duration: number; } export declare function apolloTracingGraphQLMiddleware(resolve: Function, parent: any, args: any, context: { [apolloTracingContext]: ApolloTracingContext; }, info: GraphQLResolveInfo): Promise; export declare function startTracingContext(): ApolloTracingContext; export declare function endTracingContext(context: ApolloTracingContext): void; export {};