import type child_process from 'child_process';
import type WebSocket from 'ws';
import type { ProcessSiteOptions } from '../../process/site.js';
import type { ISession } from '../../session/types.js';
type ServerOptions = {
    serverPort?: number;
    serverHost?: string;
};
export type StartOptions = ProcessSiteOptions & ServerOptions & {
    buildStatic?: boolean;
    headless?: boolean;
    port?: number;
    template?: string;
    baseurl?: string;
    keepHost?: boolean;
};
/**
 * Creates a content server and a websocket that can reload and log messages to the client.
 */
export declare function startContentServer(session: ISession, opts?: ServerOptions): Promise<{
    host: string;
    port: number;
    stop: () => void;
    sendReload: () => void;
    sendJson: (data: {
        type: "LOG" | "RELOAD";
        message?: string;
        [s: string]: any;
    }) => void;
    wss: import("ws").Server<typeof WebSocket, typeof import("http").IncomingMessage>;
    connections: Record<string, WebSocket>;
}>;
export declare function warnOnHostEnvironmentVariable(session: ISession, opts?: StartOptions): string;
export type ServerInfo = {
    port?: number;
    process?: child_process.ChildProcess;
    contentServer: Awaited<ReturnType<typeof startContentServer>>;
    stop: () => Promise<void>;
};
export declare function startServer(session: ISession, opts: StartOptions): Promise<ServerInfo | undefined>;
export {};
//# sourceMappingURL=start.d.ts.map