/// /* eslint-disable */ export declare class Agent implements Taggable, StartSpanFn { // Configuration start(options?: AgentConfigOptions): Agent; isStarted(): boolean; setFramework(options: { name?: string; version?: string; overwrite?: boolean }): void; addPatch(modules: string | Array, handler: string | PatchHandler): void; removePatch(modules: string | Array, handler: string | PatchHandler): void; clearPatches(modules: string | Array): void; // Data collection hooks middleware: { connect(): Connect.ErrorHandleFunction }; lambda(handler: AwsLambda.Handler): AwsLambda.Handler; lambda(type: string, handler: AwsLambda.Handler): AwsLambda.Handler; handleUncaughtExceptions(fn?: (err: Error) => void): void; // Errors captureError(err: Error | string | ParameterizedMessageObject, callback?: CaptureErrorCallback): void; captureError( err: Error | string | ParameterizedMessageObject, options?: CaptureErrorOptions, callback?: CaptureErrorCallback, ): void; // Distributed Tracing currentTraceparent: string | null; // Transactions startTransaction(name?: string | null, options?: TransactionOptions): Transaction | null; startTransaction(name: string | null, type: string | null, options?: TransactionOptions): Transaction | null; startTransaction( name: string | null, type: string | null, subtype: string | null, options?: TransactionOptions, ): Transaction | null; startTransaction( name: string | null, type: string | null, subtype: string | null, action: string | null, options?: TransactionOptions, ): Transaction | null; setTransactionName(name: string): void; endTransaction(result?: string | number, endTime?: number): void; currentTransaction: Transaction | null; // Spans startSpan(name?: string | null, options?: SpanOptions): Span | null; startSpan(name: string | null, type: string | null, options?: SpanOptions): Span | null; startSpan(name: string | null, type: string | null, subtype: string | null, options?: SpanOptions): Span | null; startSpan( name: string | null, type: string | null, subtype: string | null, action: string | null, options?: SpanOptions, ): Span | null; currentSpan: Span | null; // Context setLabel(name: string, value: LabelValue): boolean; addLabels(labels: Labels): boolean; setUserContext(user: UserObject): void; setCustomContext(custom: object): void; // Transport addFilter(fn: FilterFn): void; addErrorFilter(fn: FilterFn): void; addSpanFilter(fn: FilterFn): void; addTransactionFilter(fn: FilterFn): void; flush(callback?: Function): void; destroy(): void; // Utils logger: Logger; } declare class GenericSpan implements Taggable { // The following properties and methods are currently not documented as their API isn't considered official: // timestamp, ended, id, traceId, parentId, sampled, duration() type: string | null; subtype: string | null; action: string | null; traceparent: string; setType(type?: string | null, subtype?: string | null, action?: string | null): void; setLabel(name: string, value: LabelValue): boolean; addLabels(labels: Labels): boolean; } declare class Transaction extends GenericSpan implements StartSpanFn { // The following properties and methods are currently not documented as their API isn't considered official: // setUserContext(), setCustomContext(), toJSON(), setDefaultName(), setDefaultNameFromRequest() name: string; result: string | number; startSpan(name?: string | null, options?: SpanOptions): Span | null; startSpan(name: string | null, type: string | null, options?: SpanOptions): Span | null; startSpan(name: string | null, type: string | null, subtype: string | null, options?: SpanOptions): Span | null; startSpan( name: string | null, type: string | null, subtype: string | null, action: string | null, options?: SpanOptions, ): Span | null; ensureParentId(): string; end(result?: string | number | null, endTime?: number): void; } declare class Span extends GenericSpan { // The following properties and methods are currently not documented as their API isn't considered official: // customStackTrace(), setDbContext() transaction: Transaction; name: string; end(endTime?: number): void; } interface AgentConfigOptions { abortedErrorThreshold?: string; // Also support `number`, but as we're removing this functionality soon, there's no need to advertise it active?: boolean; addPatch?: KeyValueConfig; apiRequestSize?: string; // Also support `number`, but as we're removing this functionality soon, there's no need to advertise it apiRequestTime?: string; // Also support `number`, but as we're removing this functionality soon, there's no need to advertise it asyncHooks?: boolean; captureBody?: CaptureBody; captureErrorLogStackTraces?: CaptureErrorLogStackTraces; captureExceptions?: boolean; captureHeaders?: boolean; captureSpanStackTraces?: boolean; containerId?: string; disableInstrumentations?: string | string[]; environment?: string; errorMessageMaxLength?: string; // Also support `number`, but as we're removing this functionality soon, there's no need to advertise it errorOnAbortedRequests?: boolean; filterHttpHeaders?: boolean; frameworkName?: string; frameworkVersion?: string; globalLabels?: KeyValueConfig; hostname?: string; ignoreUrls?: Array; ignoreUserAgents?: Array; instrument?: boolean; instrumentIncomingHTTPRequests?: boolean; kubernetesNamespace?: string; kubernetesNodeName?: string; kubernetesPodName?: string; kubernetesPodUID?: string; logLevel?: LogLevel; logger?: Logger; metricsInterval?: string; // Also support `number`, but as we're removing this functionality soon, there's no need to advertise it payloadLogFile?: string; centralConfig?: boolean; secretToken?: string; serverTimeout?: string; // Also support `number`, but as we're removing this functionality soon, there's no need to advertise it serverUrl?: string; serviceName?: string; serviceVersion?: string; sourceLinesErrorAppFrames?: number; sourceLinesErrorLibraryFrames?: number; sourceLinesSpanAppFrames?: number; sourceLinesSpanLibraryFrames?: number; stackTraceLimit?: number; transactionMaxSpans?: number; transactionSampleRate?: number; usePathAsTransactionName?: boolean; verifyServerCert?: boolean; } interface CaptureErrorOptions { request?: any; response?: any; timestamp?: number; handled?: boolean; user?: UserObject; labels?: Labels; tags?: Labels; custom?: object; message?: string; } interface Labels { [key: string]: LabelValue; } interface UserObject { id?: string | number; username?: string; email?: string; } interface ParameterizedMessageObject { message: string; params: Array; } interface Logger { fatal(msg: string, ...args: any[]): void; fatal(obj: {}, msg?: string, ...args: any[]): void; error(msg: string, ...args: any[]): void; error(obj: {}, msg?: string, ...args: any[]): void; warn(msg: string, ...args: any[]): void; warn(obj: {}, msg?: string, ...args: any[]): void; info(msg: string, ...args: any[]): void; info(obj: {}, msg?: string, ...args: any[]): void; debug(msg: string, ...args: any[]): void; debug(obj: {}, msg?: string, ...args: any[]): void; trace(msg: string, ...args: any[]): void; trace(obj: {}, msg?: string, ...args: any[]): void; [propName: string]: any; } interface TransactionOptions { startTime?: number; childOf?: Transaction | Span | string; } interface SpanOptions { childOf?: Transaction | Span | string; } type CaptureBody = "off" | "errors" | "transactions" | "all"; type CaptureErrorLogStackTraces = "never" | "messages" | "always"; type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal"; type CaptureErrorCallback = (err: Error | null, id: string) => void; type FilterFn = (payload: Payload) => Payload | boolean | void; type LabelValue = string | number | boolean | null | undefined; type KeyValueConfig = string | Labels | Array>; type Payload = { [propName: string]: any }; type PatchHandler = (exports: any, agent: Agent, options: PatchOptions) => any; interface PatchOptions { version: string | undefined; enabled: boolean; } interface Taggable { setLabel(name: string, value: LabelValue): boolean; addLabels(labels: Labels): boolean; } interface StartSpanFn { startSpan(name?: string | null, options?: SpanOptions): Span | null; startSpan(name: string | null, type: string | null, options?: SpanOptions): Span | null; startSpan(name: string | null, type: string | null, subtype: string | null, options?: SpanOptions): Span | null; startSpan( name: string | null, type: string | null, subtype: string | null, action: string | null, options?: SpanOptions, ): Span | null; } // Inlined from @types/aws-lambda - start declare namespace AwsLambda { interface CognitoIdentity { cognitoIdentityId: string; cognitoIdentityPoolId: string; } interface ClientContext { client: ClientContextClient; custom?: any; env: ClientContextEnv; } interface ClientContextClient { installationId: string; appTitle: string; appVersionName: string; appVersionCode: string; appPackageName: string; } interface ClientContextEnv { platformVersion: string; platform: string; make: string; model: string; locale: string; } type Callback = (error?: Error | null | string, result?: TResult) => void; interface Context { // Properties callbackWaitsForEmptyEventLoop: boolean; functionName: string; functionVersion: string; invokedFunctionArn: string; memoryLimitInMB: number; awsRequestId: string; logGroupName: string; logStreamName: string; identity?: CognitoIdentity; clientContext?: ClientContext; // Functions getRemainingTimeInMillis(): number; // Functions for compatibility with earlier Node.js Runtime v0.10.42 // For more details see http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-using-old-runtime.html#nodejs-prog-model-oldruntime-context-methods done(error?: Error, result?: any): void; fail(error: Error | string): void; succeed(messageOrObject: any): void; succeed(message: string, object: any): void; } type Handler = ( event: TEvent, context: Context, callback: Callback, ) => void | Promise; } // Inlined from @types/connect - start declare namespace Connect { type NextFunction = (err?: any) => void; type ErrorHandleFunction = (err: any, req: any, res: any, next: NextFunction) => void; }