/// import type * as fs from 'fs'; import type * as api from '@opentelemetry/api'; import type { InstrumentationConfig } from '@opentelemetry/instrumentation'; export declare type FunctionPropertyNames = Exclude<{ [K in keyof T]: T[K] extends Function ? K : never; }[keyof T], undefined>; export declare type FunctionProperties = Pick>; export declare type FunctionPropertyNamesTwoLevels = Exclude<{ [K in keyof T]: { [L in keyof T[K]]: L extends string ? T[K][L] extends Function ? K extends string ? L extends string ? `${K}.${L}` : never : never : never : never; }[keyof T[K]]; }[keyof T], undefined>; export declare type Member = FunctionPropertyNames | FunctionPropertyNamesTwoLevels; export declare type FMember = FunctionPropertyNames | FunctionPropertyNamesTwoLevels; export declare type FPMember = FunctionPropertyNames<(typeof fs)['promises']> | FunctionPropertyNamesTwoLevels<(typeof fs)['promises']>; export declare type CreateHook = (functionName: FMember | FPMember, info: { args: ArrayLike; }) => boolean; export declare type EndHook = (functionName: FMember | FPMember, info: { args: ArrayLike; span: api.Span; error?: Error; }) => void; export interface FsInstrumentationConfig extends InstrumentationConfig { createHook?: CreateHook; endHook?: EndHook; requireParentSpan?: boolean; } //# sourceMappingURL=types.d.ts.map