import type { IWgPeerConfig } from './smartvpn.interfaces.js';
export interface IWgClientConfOptions {
    /** Client private key (base64) */
    privateKey: string;
    /** Client TUN address with prefix (e.g. 10.8.0.2/24) */
    address: string;
    /** DNS servers */
    dns?: string[];
    /** TUN MTU */
    mtu?: number;
    /** Server peer config */
    peer: {
        publicKey: string;
        presharedKey?: string;
        endpoint: string;
        allowedIps: string[];
        persistentKeepalive?: number;
    };
}
export interface IWgServerConfOptions {
    /** Server private key (base64) */
    privateKey: string;
    /** Server TUN address with prefix (e.g. 10.8.0.1/24) */
    address: string;
    /** UDP listen port */
    listenPort: number;
    /** DNS servers */
    dns?: string[];
    /** TUN MTU */
    mtu?: number;
    /** Enable NAT — adds PostUp/PostDown iptables rules */
    enableNat?: boolean;
    /** Network interface for NAT (e.g. eth0). Auto-detected if omitted. */
    natInterface?: string;
    /** Configured peers */
    peers: IWgPeerConfig[];
}
/**
 * Generates standard WireGuard .conf files compatible with wg-quick,
 * WireGuard iOS/Android apps, and other standard WireGuard clients.
 */
export declare class WgConfigGenerator {
    /**
     * Generate a client .conf file content.
     */
    static generateClientConfig(opts: IWgClientConfOptions): string;
    /**
     * Generate a server .conf file content.
     */
    static generateServerConfig(opts: IWgServerConfOptions): string;
}
