import type { DkgConfig } from '../config.js'; export type TelemetryTransitionResult = { ok: true; } | { ok: false; error: string; }; export interface TelemetrySignalAdapter { start(): Promise; stop(): Promise; } export interface TelemetryRuntime { isEnabled(): boolean; startConfiguredBestEffort(): Promise; setEnabled(enabled: boolean): Promise; shutdown(): Promise; } export interface TelemetrySettings { getTelemetryEnabled(): boolean; setTelemetryEnabled(enabled: boolean): Promise; } /** * Keep the settings API wired to the same serialized runtime used at boot and * shutdown. Exporting this small seam lets the runtime-enable path be tested * with the production signal composition instead of a generic signal stub. */ export declare function createTelemetrySettings(runtime: TelemetryRuntime): TelemetrySettings; /** * Canonical owner of the telemetry master gate. It serializes transitions, * starts/stops every signal through one adapter, persists config, rolls failed * runtime enables back durably, and drains pending transitions on shutdown. * Logger sink attachment remains the log controller's separate responsibility. */ export declare function createTelemetryRuntime(opts: { config: DkgConfig; persist(config: DkgConfig): Promise; signals: TelemetrySignalAdapter; onBootStartFailure?(error: string): void; }): TelemetryRuntime; //# sourceMappingURL=telemetry-runtime.d.ts.map