export interface NetworkAddress {
    readonly host: string;
    readonly port: number;
    readonly protocol: 'http' | 'https';
}
export interface PublicAddress {
    readonly url: string;
    readonly provider: string;
}
export interface INetworkProvider {
    getLocalAddress(): NetworkAddress;
    getPublicAddress(): PublicAddress | null;
    registerRemoteAccess(provider: IRemoteAccessProvider): void;
    unregisterRemoteAccess(providerId: string): void;
    onPublicAddressChange(callback: (address: PublicAddress | null) => void): () => void;
}
export type RemoteAccessStatus = 'connected' | 'connecting' | 'disconnected' | 'error';
export interface IRemoteAccessProvider {
    readonly id: string;
    readonly name: string;
    getPublicUrl(): string | null;
    getStatus(): RemoteAccessStatus;
    start(): Promise<void>;
    stop(): Promise<void>;
    onStatusChange?(callback: (status: RemoteAccessStatus) => void): () => void;
}
//# sourceMappingURL=network.d.ts.map