/**
 * Live-status probes for connected observability providers.
 *
 * READ-ONLY detection by reachability (Sentry auth, CloudWatch alarms, X-Ray
 * traces). Missing credentials degrade to unknown — never a fabricated
 * "disconnected" claim.
 * @module cli/ui-observability-providers
 */
import type { JsonValue } from "../sync/json-path.js";
import type { ProbeResult, StatusProbe } from "./ui-status.js";
/** Structured value for a reachable observability provider. */
export type ObservabilityProviderValue = {
    readonly [key: string]: JsonValue;
    readonly status: "connected" | "connected-but-empty";
    readonly emptyKind?: "alarms" | "traces";
};
/** Injectable Sentry reachability check. */
export type SentryReachabilityCheck = (timeoutMs: number, signal: AbortSignal) => Promise<"reachable" | "not-authenticated">;
/** Injectable AWS count check (alarms or traces), or not-authenticated. */
export type AwsCountCheck = (timeoutMs: number, signal: AbortSignal) => Promise<number | "not-authenticated">;
export declare const SENTRY_PROBE_ID = "sentry";
export declare const CLOUDWATCH_ALARMS_PROBE_ID = "cloudwatch-alarms";
export declare const XRAY_PROBE_ID = "x-ray";
/**
 * Map Sentry reachability onto the live-status tri-state.
 * @param outcome - Reachability check result
 * @returns Probe result for the sentry provider
 */
export declare function mapSentryReachability(outcome: "reachable" | "not-authenticated"): ProbeResult<ObservabilityProviderValue>;
/**
 * Map an AWS count check onto connected / empty / unknown.
 * @param outcome - Count or not-authenticated
 * @param emptyKind - Whether zero means no alarms or no traces
 * @returns Probe result for CloudWatch or X-Ray
 */
export declare function mapAwsCountCheck(outcome: number | "not-authenticated", emptyKind: "alarms" | "traces"): ProbeResult<ObservabilityProviderValue>;
/**
 * Create the Sentry observability probe.
 * @param options - Injectable collaborators
 * @param options.check - Optional reachability check for focused tests
 * @returns Bounded status probe
 */
export declare function createSentryProbe(options?: {
    readonly check?: SentryReachabilityCheck;
}): StatusProbe<ObservabilityProviderValue>;
/**
 * Create the CloudWatch Alarms observability probe.
 * @param options - Injectable collaborators
 * @param options.check - Optional alarm-count check for focused tests
 * @returns Bounded status probe
 */
export declare function createCloudWatchAlarmsProbe(options?: {
    readonly check?: AwsCountCheck;
}): StatusProbe<ObservabilityProviderValue>;
/**
 * Create the X-Ray observability probe.
 * @param options - Injectable collaborators
 * @param options.check - Optional trace-count check for focused tests
 * @returns Bounded status probe
 */
export declare function createXRayProbe(options?: {
    readonly check?: AwsCountCheck;
}): StatusProbe<ObservabilityProviderValue>;
/**
 * Register all three observability provider probes.
 * @returns Sentry, CloudWatch Alarms, and X-Ray probes
 */
export declare function createObservabilityProviderProbes(): readonly StatusProbe<ObservabilityProviderValue>[];
//# sourceMappingURL=ui-observability-providers.d.ts.map