/** * Composite Adapter * * Supports multiple observability providers running in parallel or priority (fallback) modes. * * - **Parallel mode**: Sends data to all adapters simultaneously * - **Priority mode**: Tries first adapter, falls back to next on failure * * @module base/observability */ import type { ObservabilityAdapter, ObservabilityAdapterConfig, Metric, SpanOptions, Span, LogEntry, ObservabilityEvent } from '@plyaz/types/observability'; /** * Composite adapter that delegates to multiple child adapters. * * @example Parallel mode (send to all - e.g., Datadog + Console) * ```typescript * const composite = new CompositeAdapter(); * await composite.initialize({ * mode: 'parallel', * adapters: [datadogAdapter, loggerAdapter], * failOnAnyError: false, * }); * ``` * * @example Priority mode (fallback chain) * ```typescript * const composite = new CompositeAdapter(); * await composite.initialize({ * mode: 'priority', * adapters: [datadogAdapter, grafanaAdapter, loggerAdapter], * adapterTimeout: 5000, * }); * ``` */ export declare class CompositeAdapter implements ObservabilityAdapter { readonly provider: "custom"; readonly name = "CompositeAdapter"; private _isInitialized; private _config; private adapters; private mode; private adapterTimeout; private failOnAnyError; private fallbackOnErrors; private readonly logger; constructor(); get isInitialized(): boolean; initialize(config: ObservabilityAdapterConfig): Promise; shutdown(): Promise; isHealthy(): Promise; recordMetric(metric: Metric): Promise; incrementCounter(name: string, value?: number, tags?: Record): Promise; setGauge(name: string, value: number, tags?: Record): Promise; recordHistogram(name: string, value: number, tags?: Record): Promise; startSpan(options: SpanOptions): Span; getActiveSpan(): Span | null; withSpan(options: SpanOptions, fn: (span: Span) => Promise): Promise; log(entry: LogEntry): Promise; sendEvent(event: ObservabilityEvent): Promise; flush(): Promise; private executeOnAdapters; private executeParallel; private executePriority; private withTimeout; /** * Check if we should fallback on this error type */ private shouldFallbackOnError; private createCompositeSpan; private createNoopSpan; } //# sourceMappingURL=CompositeAdapter.d.ts.map