export interface Options {
    /**
     * The client configuration, this is
     * used to specify options for the local proxy server.
     */
    client?: {
        /**
         * The local port on which to expose the proxy.
         */
        port?: number;
        /**
         * The private key to use when handshaking with
         * the remote Wireguard server.
         */
        privateKey?: string;
    };
    /**
     * The path where the generated Wireguard configuration
     * file should be written.
     */
    configuration?: string;
    /**
     * The server configuration, this is
     * used to specify options for the remote
     * Wireguard server.
     */
    server?: {
        /**
         * The host of the remote Wireguard server, can be
         * and IP address or a DNS name.
         */
        host?: string;
        /**
         * The port on which the remote Wireguard server is
         * listening on.
         */
        port?: number;
        /**
         * The public key of the remote Wireguard server, used
         * when handshaking.
         */
        publicKey?: string;
    };
}
export declare function start({ client, configuration, server, }?: Options): Promise<string>;
