import type { GatewayBindMode } from '../config/schema.js';
import { GatewayService } from './service.js';
export interface GatewayServerConfig {
    port: number;
    /** Resolved listen address (sync plan); re-validated async at start when possible. */
    bindHost: string;
    bind?: GatewayBindMode;
    customBindHost?: string;
    token?: string;
    verbose?: boolean;
    configPath?: string;
    enableHotReload?: boolean;
}
export declare class GatewayServer {
    private server?;
    private extraServers;
    private config;
    private service;
    constructor(config: GatewayServerConfig);
    start(): Promise<void>;
    close(opts?: {
        reason?: string;
        restartExpectedMs?: number | null;
    }): Promise<void>;
    stop(): Promise<void>;
    get isRunning(): boolean;
    get serviceInstance(): GatewayService;
}
