/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import * as plugins from './smartnetwork.plugins.js';
/**
 * SmartNetwork simplifies actions within the network
 */
export declare class SmartNetwork {
    /**
     * get network speed
     * @param measurementTime
     */
    getSpeed(): Promise<{
        ip: string;
        serverLocation: {
            shortId: string;
            name: string;
            availableLocations: {
                [key: string]: string;
            };
        };
        downloadSpeed: string;
        uploadSpeed: string;
        maxTime: number;
        minTime: number;
        averageTime: number;
        medianTime: number;
        jitter: number;
    }>;
    ping(hostArg: string, timeoutArg?: number): Promise<ReturnType<typeof plugins.smartping.Smartping.prototype.ping>>;
    /**
     * returns a promise with a boolean answer
     * note: false also resolves with false as argument
     * @param port
     */
    isLocalPortUnused(port: number): Promise<boolean>;
    /**
     * checks wether a remote port is available
     * @param domainArg
     */
    isRemotePortAvailable(domainArg: string, portArg?: number): Promise<boolean>;
    getGateways(): Promise<NodeJS.Dict<plugins.os.NetworkInterfaceInfo[]>>;
    getDefaultGateway(): Promise<{
        ipv4: plugins.os.NetworkInterfaceInfo;
        ipv6: plugins.os.NetworkInterfaceInfo;
    }>;
    getPublicIps(): Promise<{
        v4: any;
        v6: any;
    }>;
}
