/**
* @see https://www.apollographql.com/docs/apollo-server/features/metrics.html#Granular-Logs
*/
import { GraphQLExtension, GraphQLResponse } from 'graphql-extensions';
/**
* @todo this causes multiple graphql errors?
*/
import { DocumentNode } from 'graphql';
export declare enum LogAction {
request = 0,
parse = 1,
validation = 2,
execute = 3,
setup = 4,
cleanup = 5
}
export declare enum LogStep {
start = 0,
end = 1,
status = 2
}
export interface LogMessage {
action: LogAction;
step: LogStep;
key?: string;
data?: any;
}
export interface LogFunction {
(message: LogMessage): any;
}
export declare const DEFAULT_GRAPHQL_LOGGER: (...args: any[]) => void;
export declare class LoggingExtension<TContext = any> implements GraphQLExtension<TContext> {
private logFunction;
constructor(logFunction?: LogFunction);
requestDidStart(options: {
request: Request;
queryString?: string;
parsedQuery?: DocumentNode;
operationName?: string;
variables?: {
[key: string]: any;
};
}): (...errors: Error[]) => void;
parsingDidStart(): () => void;
validationDidStart(): () => void;
executionDidStart(): () => void;
willSendResponse(o: {
graphqlResponse: GraphQLResponse;
}): void;
}