import { z } from "zod";
export declare const MockOpsServerConfigSchema: z.ZodObject<{
    port: z.ZodDefault<z.ZodNumber>;
    latencyMs: z.ZodDefault<z.ZodNumber>;
    seed: z.ZodDefault<z.ZodNumber>;
    eventIntervalMs: z.ZodDefault<z.ZodNumber>;
    severityWeights: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
    eventTypeWeights: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
    market: z.ZodOptional<z.ZodEnum<{
        US: "US";
        AU: "AU";
        UK: "UK";
        EU: "EU";
        APAC: "APAC";
    }>>;
    scheduleDate: z.ZodDefault<z.ZodString>;
    autoStart: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type MockOpsServerConfig = z.infer<typeof MockOpsServerConfigSchema>;
export declare const EventsResponseSchema: z.ZodObject<{
    events: z.ZodArray<z.ZodObject<{
        eventId: z.ZodString;
        flightNumber: z.ZodString;
        airline: z.ZodString;
        origin: z.ZodString;
        destination: z.ZodString;
        type: z.ZodEnum<{
            DEPARTURE: "DEPARTURE";
            ARRIVAL: "ARRIVAL";
            DELAY: "DELAY";
            CANCEL: "CANCEL";
            DIVERT: "DIVERT";
            GATE_CHANGE: "GATE_CHANGE";
            BOARDING: "BOARDING";
            CREW_UPDATE: "CREW_UPDATE";
            WEATHER_ADVISORY: "WEATHER_ADVISORY";
            ATC_DELAY: "ATC_DELAY";
            EQUIPMENT_CHANGE: "EQUIPMENT_CHANGE";
        }>;
        timestamp: z.ZodString;
        data: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        source: z.ZodString;
        processed: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type EventsResponse = z.infer<typeof EventsResponseSchema>;
export declare const LatestEventsResponseSchema: z.ZodObject<{
    events: z.ZodArray<z.ZodObject<{
        eventId: z.ZodString;
        flightNumber: z.ZodString;
        airline: z.ZodString;
        origin: z.ZodString;
        destination: z.ZodString;
        type: z.ZodEnum<{
            DEPARTURE: "DEPARTURE";
            ARRIVAL: "ARRIVAL";
            DELAY: "DELAY";
            CANCEL: "CANCEL";
            DIVERT: "DIVERT";
            GATE_CHANGE: "GATE_CHANGE";
            BOARDING: "BOARDING";
            CREW_UPDATE: "CREW_UPDATE";
            WEATHER_ADVISORY: "WEATHER_ADVISORY";
            ATC_DELAY: "ATC_DELAY";
            EQUIPMENT_CHANGE: "EQUIPMENT_CHANGE";
        }>;
        timestamp: z.ZodString;
        data: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        source: z.ZodString;
        processed: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    nextIndex: z.ZodNumber;
}, z.core.$strip>;
export type LatestEventsResponse = z.infer<typeof LatestEventsResponseSchema>;
export declare const GenerateEventsResponseSchema: z.ZodObject<{
    generated: z.ZodNumber;
    total: z.ZodNumber;
    previousTotal: z.ZodNumber;
}, z.core.$strip>;
export type GenerateEventsResponse = z.infer<typeof GenerateEventsResponseSchema>;
export declare const EventStatsResponseSchema: z.ZodObject<{
    total: z.ZodNumber;
    emitted: z.ZodNumber;
    byType: z.ZodRecord<z.ZodString, z.ZodNumber>;
    wsClients: z.ZodNumber;
}, z.core.$strip>;
export type EventStatsResponse = z.infer<typeof EventStatsResponseSchema>;
export declare class MockOpsServer {
    private server;
    private readonly config;
    private readonly rng;
    private readonly events;
    private eventIndex;
    private wsClients;
    private streamInterval;
    private routes;
    constructor(config?: Partial<MockOpsServerConfig>);
    /** Start the server. Returns the base URL. */
    start(): Promise<string>;
    /** Stop the server and event stream. */
    stop(): Promise<void>;
    /** Start streaming events to WebSocket clients. */
    startStream(): void;
    /** Stop streaming events. */
    stopStream(): void;
    /** Get the server base URL. */
    get url(): string;
    /** Get the WebSocket URL. */
    get wsUrl(): string;
    /** Get total generated event count. */
    get eventCount(): number;
    /** Get number of active WebSocket clients. */
    get clientCount(): number;
    /** Get how many events have been emitted so far. */
    get emittedCount(): number;
    private handleRequest;
    private emitNextEvent;
}
//# sourceMappingURL=mock-server.d.ts.map