import type { GraphQLError, DocumentNode } from 'graphql'; import type { GraphQLRequestContextDidResolveOperation, GraphQLRequestContext, GraphQLRequestContextWillSendResponse, BaseContext } from '../../externalTypes/index.js'; import type { Logger } from '@apollo/utils.logger'; import type { Trace } from '@apollo/usage-reporting-protobuf'; import type { Fetcher } from '@apollo/utils.fetcher'; export interface ApolloServerPluginUsageReportingOptions { sendTraces?: boolean; sendVariableValues?: VariableValueOptions; sendHeaders?: SendValuesBaseOptions; sendErrors?: SendErrorsOptions; fieldLevelInstrumentation?: number | ((request: GraphQLRequestContextDidResolveOperation) => Promise); includeRequest?: (request: GraphQLRequestContextDidResolveOperation | GraphQLRequestContextWillSendResponse) => Promise; generateClientInfo?: GenerateClientInfo; overrideReportedSchema?: string; sendUnexecutableOperationDocuments?: boolean; experimental_sendOperationAsTrace?: (trace: Trace, statsReportKey: string) => boolean; sendReportsImmediately?: boolean; fetcher?: Fetcher; reportIntervalMs?: number; maxUncompressedReportSize?: number; maxAttempts?: number; minimumRetryDelayMs?: number; requestTimeoutMs?: number; logger?: Logger; reportErrorFunction?: (err: Error) => void; endpointUrl?: string; debugPrintReports?: boolean; calculateSignature?: (ast: DocumentNode, operationName: string) => string; __onlyIfSchemaIsNotSubgraph?: boolean; } export type SendValuesBaseOptions = { onlyNames: Array; } | { exceptNames: Array; } | { all: true; } | { none: true; }; type VariableValueTransformOptions = { variables: Record; operationString?: string; }; export type VariableValueOptions = { transform: (options: VariableValueTransformOptions) => Record; } | SendValuesBaseOptions; export type SendErrorsOptions = { unmodified: true; } | { masked: true; } | { transform: (err: GraphQLError) => GraphQLError | null; }; export interface ClientInfo { clientName?: string; clientVersion?: string; } export type GenerateClientInfo = (requestContext: GraphQLRequestContext) => ClientInfo; export {}; //# sourceMappingURL=options.d.ts.map