import { type RemoteInfo } from "node:dgram";
import type { Client } from "../client";
import type { Circuit } from "./circuit";
import type { Core } from "./core";
export interface ProxyOptions {
    host: string;
    port: number;
}
export declare class Socket {
    private readonly client;
    private readonly core;
    private socket;
    private active;
    private proxy?;
    private remoteHost?;
    private parseUdpFrame?;
    private createUdpFrame?;
    constructor(client: Client, core: Core, proxy?: ProxyOptions);
    send(circuit: Circuit, buffer: Buffer): Promise<void>;
    receive(buffer: Buffer, info: RemoteInfo): Promise<void>;
    close(): void;
}
