import type { DkgConfig } from './config.js'; /** * Pure resolution of the daemon's telemetry routing — extracted from * `lifecycle.ts` so it is unit-testable (endpoint precedence, no-TBD-default, * per-signal gating, log-exporter selection). */ export type LogExporterMode = 'none' | 'otlp' | 'syslog'; /** * Which log exporter the daemon should start. Only consulted when * `telemetry.enabled`. UNSET defaults to 'syslog' (preserves prior behaviour), * but the config is user-provided JSON/YAML so the TS union does NOT protect * this boundary: an unknown/typo'd value (e.g. "none " / "otpl" / "disabled") * must FAIL CLOSED to 'none' — never silently fall through to syslog and ship * logs off-node against the operator's intent. Returns null `mode` info via the * second tuple element so the caller can warn on an unrecognized value. */ export declare function resolveLogExporterMode(telemetry: DkgConfig['telemetry']): LogExporterMode; /** True when `telemetry.logs.exporter` is set to a value outside the known enum. */ export declare function isUnknownLogExporter(telemetry: DkgConfig['telemetry']): boolean; export interface ResolvedOtelSignals { tracesEndpoint?: string; metricsEndpoint?: string; /** Register traces only when an endpoint resolves AND not explicitly disabled. */ tracesOn: boolean; metricsOn: boolean; } /** * Resolve OTLP traces/metrics endpoints env-first (standard `OTEL_EXPORTER_OTLP_*` * names) then config. A signal is "on" only when an endpoint resolves and it is * not explicitly disabled — there is NO guessed/TBD production default. */ export declare function resolveOtelSignals(telemetry: DkgConfig['telemetry'], env?: Record): ResolvedOtelSignals; //# sourceMappingURL=telemetry-config.d.ts.map