import { type RelayClientWebSocket, type RelayRegistrationLogger, type RelayRegistrationStatus } from '@pellux/goodvibes-daemon-sdk'; import { type RelayPairingPayload, type SerializedRelayIdentity } from '@pellux/goodvibes-transport-core/relay'; /** Durable custody of the daemon's relay identity (adapter over SecretsManager). */ export interface RelayIdentityStore { load(): Promise; save(identity: SerializedRelayIdentity): Promise; } /** The `relay.*` config slice this controller reads. */ export interface RelayReachabilityConfig { readonly enabled: boolean; readonly url: string; readonly rendezvousId: string; readonly label: string; } export interface RelayReachabilityOptions { readonly config: RelayReachabilityConfig; /** Whether the `relay-connect` capability gate is on (relay.enabled). */ readonly featureFlagEnabled: boolean; readonly identityStore: RelayIdentityStore; /** Replay a reconstructed request against the daemon (e.g. facade.handleRequest). */ readonly dispatch: (req: Request) => Promise; /** Base URL used to resolve tunneled paths (host is irrelevant; routing is by path). */ readonly localBaseUrl?: string; readonly webSocketImpl?: (url: string) => RelayClientWebSocket; /** Called with a freshly-generated rendezvous id so the caller can persist it. */ readonly onRendezvousId?: (rid: string) => void; readonly logger?: RelayRegistrationLogger; readonly onStatusChange?: (status: RelayRegistrationStatus) => void; } /** The composed reachability controller. */ export interface RelayReachability { /** Start the outbound registration if enabled; otherwise a no-op. */ start(): Promise; /** Stop the outbound registration. */ stop(): void; /** Current status, or `'disabled'` when the relay path is gated off. */ readonly status: RelayRegistrationStatus | 'disabled'; /** Mint a pairing payload a surface can scan, or null when disabled. */ mintPairing(): Promise; } /** Whether all three gates are satisfied. */ export declare function isRelayReachabilityEnabled(config: RelayReachabilityConfig, featureFlagEnabled: boolean): boolean; export declare function createRelayReachability(options: RelayReachabilityOptions): RelayReachability; //# sourceMappingURL=reachability.d.ts.map