/**
 * Core Types
 * Phase 3: Data contracts for collectors and UiState
 */
/**
 * Collector Result Envelope
 * Phase 9: Standard collector contract with status, asOf, reasonCode, message, action
 */
export type CollectorStatus = 'LIVE' | 'STALE' | 'UNAVAILABLE' | 'DISABLED';
export type CollectorResult<T> = {
    status: CollectorStatus;
    asOf: number;
    data?: T;
    source: string;
    staleAfterMs: number;
    reasonCode?: string;
    message?: string;
    action?: string;
    ok?: boolean;
    ts?: number;
    error?: {
        code: string;
        message: string;
    };
};
/**
 * UiState - Single authoritative snapshot
 * Phase 3: Complete state for hub rendering
 */
export type UiState = {
    ts: number;
    posture: {
        posture: "OPERATIONAL" | "DEGRADED" | "OFFLINE" | "CRITICAL" | "UNKNOWN";
        risk: "LOW" | "ELEVATED" | "HIGH" | "UNKNOWN";
        connected: boolean | "UNKNOWN";
        target: string | "UNKNOWN";
        lastChange: number | "UNKNOWN";
        cause: string | "UNKNOWN";
        dependencies: {
            config: "OK" | "WARN" | "ERROR" | "UNKNOWN";
            gateway: "OK" | "WARN" | "ERROR" | "UNKNOWN";
            database: "OK" | "WARN" | "ERROR" | "UNKNOWN";
            registry: "OK" | "WARN" | "ERROR" | "UNKNOWN";
        };
    };
    network: {
        originRegion: string | "UNKNOWN";
        originClass: "LOCAL" | "VPN" | "CLOUD" | "UNKNOWN";
        gatewayRegion: string | "UNKNOWN";
        dbRegion: string | "NONE" | "UNKNOWN";
        latencyMs: number | "UNKNOWN";
        latencyClass: "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
        publicIpMasked: string | "HIDDEN" | "UNKNOWN";
    };
    resources: {
        cpuPercent: number | "UNKNOWN";
        load1m: number | "UNKNOWN";
        ramUsedMb: number | "UNKNOWN";
        ramTotalMb: number | "UNKNOWN";
        diskUsedGb: number | "UNKNOWN";
        diskTotalGb: number | "UNKNOWN";
        uptimeSec: number | "UNKNOWN";
        procCount: number | "UNKNOWN";
    };
    assets: {
        total: number | "UNKNOWN";
        active: number | "UNKNOWN";
        idle: number | "UNKNOWN";
        error: number | "UNKNOWN";
        highlight: string | "UNKNOWN";
        lastAction: string | "NONE" | "UNKNOWN";
    };
    capabilities: {
        gateway: "READY" | "DEGRADED" | "UNKNOWN";
        database: "READY" | "NOT_INITIALIZED" | "UNKNOWN";
        memory: "IN_MEMORY" | "PERSISTENT" | "UNKNOWN";
        security: "OPEN" | "BASIC" | "JWT" | "UNKNOWN";
        rateLimit: "ENABLED" | "DISABLED" | "UNKNOWN";
    };
    feed: {
        events: Array<{
            ts: number;
            tag: "RUN" | "NET" | "SEC" | "DB" | "GATEWAY" | "SYSTEM";
            msg: string;
        }>;
    };
    freshness: {
        posture: "FRESH" | "STALE";
        network: "FRESH" | "STALE";
        resources: "FRESH" | "STALE";
        assets: "FRESH" | "STALE";
        capabilities: "FRESH" | "STALE";
    };
    history?: {
        cpu: Array<number | null>;
        ram: Array<number | null>;
        latency: Array<number | null>;
    };
    geo?: GeoContext;
};
/**
 * Geographic Context
 * Phase 5: Geographic situational awareness
 */
export type GeoContext = {
    originLabel: string | "UNKNOWN";
    originRegion: string | "UNKNOWN";
    originLatLon?: {
        lat: number;
        lon: number;
    } | "UNKNOWN";
    gatewayRegion: string | "UNKNOWN";
    gatewayLatLon?: {
        lat: number;
        lon: number;
    } | "UNKNOWN";
    dbRegion: string | "UNKNOWN";
    dbLatLon?: {
        lat: number;
        lon: number;
    } | "UNKNOWN";
    routeLabel: string | "UNKNOWN";
    pingMs: number | "UNKNOWN";
    pingClass: "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
    confidence: "LOW" | "MEDIUM" | "HIGH" | "UNKNOWN";
    source: "MANUAL" | "LOCAL_IP" | "AWS_META" | "NONE";
};
//# sourceMappingURL=types.d.ts.map