import type { CanActivate, ConfigurableModuleAsyncOptions, Type } from '@nestjs/common'; import type { IProfilerStorageAdapter } from './storage/storage-adapter.interface.js'; import type { ProfilerFilterRequest, ProfilerForceProfileFilter, ProfilerRequestFilter } from './filters.js'; import type { PerformanceRule } from './analysis/performance-rule.interface.js'; import type { ProfilerErrorOptions } from './analysis/profiler-error.js'; import type { PlatformRequest, PlatformResponse } from './types/http.js'; import type { SafeDataOptions } from './utils/safe-data.utils.js'; import type { ProfilerRuntimeOptions } from './runtime/runtime-metrics.interface.js'; import type { ProfilerRedactionOptions } from './utils/redaction-options.js'; import type { SourceContextOptions } from './utils/source-context.util.js'; import type { ProfilerEditorName } from './views/editor-link.js'; import type { SummaryPrimitive } from './storage/profile-summary.js'; export interface ProfilerAuthContext { request: PlatformRequest; response: PlatformResponse; } export type ProfilerAuthorize = (context: ProfilerAuthContext) => boolean | Promise; export interface ProfilerSecurityOptions { authorize?: ProfilerAuthorize; guards?: (Type | CanActivate)[]; linkQuery?: (request: PlatformRequest) => string; } export interface ProfilerModuleOptions { enabled?: boolean; security?: ProfilerSecurityOptions; maxProfiles?: number; listPageSize?: number; ttl?: number; isGlobal?: boolean; timezone?: string; collectBody?: boolean; maxBodySize?: number; bodyCaptureLimits?: SafeDataOptions; collectorTimeout?: number; storageType?: 'memory' | 'file'; storagePath?: string; storage?: IProfilerStorageAdapter; sampleRate?: number; ignorePaths?: (string | RegExp)[]; useDefaultIgnorePaths?: boolean; redaction?: ProfilerRedactionOptions; emitDebugHeaders?: boolean; ignoreRequest?: ProfilerRequestFilter; performance?: ProfilerPerformanceOptions; runtime?: boolean | ProfilerRuntimeOptions; error?: ProfilerErrorOptions; attributes?: Record | ((req: ProfilerFilterRequest) => Record); version?: string; alwaysProfile?: ProfilerForceProfileFilter; traceMinDuration?: number; traceIdHeader?: string; attachTraceIdToLogs?: boolean; debug?: boolean; sourceContext?: boolean | SourceContextOptions; projectRoot?: string; editor?: ProfilerEditorName | (string & {}); } export interface ProfilerPerformanceOptions { rules?: PerformanceRule[]; } export type ProfilerModuleAsyncOptions = ConfigurableModuleAsyncOptions & { isGlobal?: boolean; enabled?: boolean; }; export declare const ConfigurableModuleClass: import("@nestjs/common", { with: { "resolution-mode": "import" } }).ConfigurableModuleCls, NEST_PROFILER_MODULE_OPTIONS: string | symbol; export declare const PROFILER_ENABLED: unique symbol;