import type { TLSConnectionOptions } from '@reclaimprotocol/tls';
import { makeTLSClient } from '@reclaimprotocol/tls';
import type { CreateTunnelRequest, RPCMessage } from '../../proto/api.ts';
import type { CompleteTLSPacket, IAttestorClient, Logger, MakeTunnelFn, Transcript } from '../../types/index.ts';
type ExtraTLSOptions = {
    request: Partial<CreateTunnelRequest>;
    logger: Logger;
    /**
     * Either create a client with the given initMessages,
     * or simply send the messages to the server via an existing
     * client
     *
     * @returns the client that was used to send the messages
     */
    connect(initMessages: Partial<RPCMessage>[]): IAttestorClient;
    tlsOpts?: TLSConnectionOptions;
};
type TLSTunnelProperties = {
    transcript: Transcript<CompleteTLSPacket>;
    tls: ReturnType<typeof makeTLSClient>;
};
/**
 * Makes a TLS tunnel that connects to the server via RPC protocol
 */
export declare const makeRpcTlsTunnel: MakeTunnelFn<ExtraTLSOptions, TLSTunnelProperties>;
export {};
