/**
 * Control-plane domain state — connected clients and live subscription posture.
 */
import type { AutomationSurfaceKind } from '../../../automation/types.js';
export type ControlPlaneClientKind = AutomationSurfaceKind;
export type ControlPlaneTransportKind = 'sse' | 'websocket' | 'http' | 'local';
export type ControlPlaneConnectionState = 'disabled' | 'initializing' | 'connecting' | 'connected' | 'degraded' | 'disconnected' | 'terminal_failure';
export interface ControlPlaneClientRecord {
    readonly id: string;
    readonly kind: ControlPlaneClientKind;
    readonly label: string;
    readonly transport: ControlPlaneTransportKind;
    readonly connected: boolean;
    readonly sessionId?: string | undefined;
    readonly routeId?: string | undefined;
    readonly surfaceId?: string | undefined;
    readonly authenticatedAt?: number | undefined;
    readonly lastSeenAt?: number | undefined;
    readonly remoteAddress?: string | undefined;
    readonly capabilities: readonly string[];
    readonly metadata: Record<string, unknown>;
}
export interface ControlPlaneDomainState {
    readonly revision: number;
    readonly lastUpdatedAt: number;
    readonly source: string;
    readonly enabled: boolean;
    readonly connectionState: ControlPlaneConnectionState;
    readonly host: string;
    readonly port: number;
    readonly clients: Map<string, ControlPlaneClientRecord>;
    readonly activeClients: Map<string, ControlPlaneClientRecord>;
    readonly clientIds: string[];
    readonly activeClientIds: string[];
    readonly isRunning: boolean;
    readonly lastError?: string | undefined;
    readonly totalConnections: number;
    readonly totalDisconnects: number;
    readonly totalFailures: number;
    readonly requestCount: number;
    readonly errorCount: number;
    readonly lastRequestAt?: number | undefined;
    readonly lastEventAt?: number | undefined;
}
export declare function createInitialControlPlaneState(): ControlPlaneDomainState;
//# sourceMappingURL=control-plane.d.ts.map