export interface NodeRegistrationInfo { nodeId: string; ipv4?: string; publicIpv6?: string; publicPort?: number; capabilities: NodeCapabilities; } export interface NodeCapabilities { solidProtocolVersion?: string; storageBackends?: string[]; authMethods?: string[]; maxBandwidth?: number; supportedModes?: ('direct' | 'proxy')[]; location?: { country?: string; region?: string; coordinates?: { lat: number; lon: number; }; }; } export interface ModeDetectionResult { accessMode: 'direct' | 'proxy'; reason: string; subdomain: string; connectivityTest?: { success: boolean; latency?: number; error?: string; }; } export interface EdgeNodeModeDetectorOptions { baseDomain: string; connectivityTimeoutMs?: number; maxDirectModeAttempts?: number; } export declare class EdgeNodeModeDetector { private readonly logger; private readonly baseDomain; private readonly connectivityTimeoutMs; private readonly maxDirectModeAttempts; constructor(options: EdgeNodeModeDetectorOptions); detectMode(nodeInfo: NodeRegistrationInfo): Promise; private generateSubdomain; private testDirectConnectivity; private singleConnectivityAttempt; recheckMode(currentMode: string, nodeInfo: NodeRegistrationInfo): Promise; private extractSupportedModes; }