/// <reference types="node" />
import { ILogger } from '@node-dlc/logger';
import { NoiseServer } from './noise-server';
import { NoiseServerOptions } from './noise-server-options';
import { NoiseSocket } from './noise-socket';
export { NoiseError } from './noise-error';
export { NoiseServer } from './noise-server';
export { NoiseServerListenOptions } from './noise-server-listen-options';
export { NoiseServerOptions } from './noise-server-options';
export { NoiseSocket } from './noise-socket';
export { NoiseSocketOptions } from './noise-socket-options';
export { NoiseState } from './noise-state';
export type NoiseConnectOptions = {
    /**
     * Local secret as a 32-byte secp256k1 private key
     */
    ls: Buffer;
    /**
     * Optional ephemeral 32-byte secp256k1 private key. If not provided, one is generated.
     */
    es?: Buffer;
    /**
     * remote compressed public key, 33-bytes.
     */
    rpk: Buffer;
    /**
     * Optional host. Defaults to localhost.
     */
    host?: string;
    /**
     * Optional port. Defaults to 9735.
     */
    port?: number;
    /**
     * Optional logger
     */
    logger?: ILogger;
};
/**
 * Connect to a remote noise socket server.
 */
export declare function connect({ ls, es, rpk, host, port, logger, }: NoiseConnectOptions): NoiseSocket;
/**
 * Factory function to create a new server
 */
export declare function createServer({ ls, esFactory }: NoiseServerOptions, connListener: (socket: NoiseSocket) => void): NoiseServer;
