/**
 * SyncServerLauncher — starts the built-in HTTP sync server for a graph host.
 *
 * Extracted from SyncController to keep that class within the 500 LOC ceiling.
 * Called directly by SyncController.serve().
 *
 * @module domain/services/controllers/SyncServerLauncher
 */
import type HttpServerPort from '../../../ports/HttpServerPort.ts';
import type { SyncHost } from './SyncController.ts';
import type SyncSecret from '../sync/SyncSecret.ts';
import type { SyncRateLimitConfig } from '../sync/SyncRateLimiter.ts';
export interface ServeOptions {
    port: number;
    host?: string;
    path?: string;
    maxRequestBytes?: number;
    httpPort: HttpServerPort;
    auth?: {
        keys: Record<string, SyncSecret>;
        mode?: 'enforce' | 'log-only';
        rateLimit?: SyncRateLimitConfig;
    };
    unsafeAllowUnauthenticatedLocalhost?: boolean;
}
export interface ServerHandle {
    close: () => Promise<void>;
    url: string;
}
/**
 * Starts a built-in HTTP sync server for the given graph host.
 *
 * @param host - The WarpRuntime instance providing processSyncRequest and crypto
 * @param options - Server configuration
 * @returns Server handle with close() method and url string
 * @throws SyncError If port is not a number or httpPort adapter is missing
 */
export declare function launchSyncServer(host: SyncHost, options: ServeOptions): Promise<ServerHandle>;
