import type { CryptoOperations, RequestContext, SignatureOperations } from '../interfaces/core.js'; import type { DecryptionRequest, EncryptionRequest, EncryptionResult, SignatureRequest, SignatureResult, VerificationRequest } from '../types.js'; import { CryptoOperationsDecorator, SignatureOperationsDecorator } from './base.js'; /** * Metrics collector interface * Allows integration with any metrics backend (Prometheus, DataDog, New Relic, etc.) */ export type MetricsCollector = { /** * Record operation latency in milliseconds */ recordLatency(operation: string, durationMs: number): void; /** * Increment operation counter */ incrementCounter(operation: string, labels?: Record): void; }; /** * Metrics decorator for CryptoOperations * Records latency and error rates for encryption/decryption operations * Integrates with observability platforms (Prometheus, DataDog, etc.) */ export declare class InstrumentedCryptoOperations extends CryptoOperationsDecorator { private readonly metrics; constructor(wrapped: CryptoOperations, metrics: MetricsCollector); encrypt(request: EncryptionRequest & RequestContext): Promise; decrypt(request: DecryptionRequest & RequestContext): Promise; } /** * Metrics decorator for SignatureOperations * Records latency and error rates for signing/verification operations */ export declare class InstrumentedSignatureOperations extends SignatureOperationsDecorator { private readonly metrics; constructor(wrapped: SignatureOperations, metrics: MetricsCollector); sign(request: SignatureRequest & RequestContext): Promise; verify(request: VerificationRequest & RequestContext): Promise; } //# sourceMappingURL=metrics.d.ts.map