import { z } from "zod";
import type { FareQuote } from "../fare/types.ts";
import { InMemoryScheduleStore } from "../schedule/lookup.ts";
import type { ScheduleEntry } from "../schedule/types.ts";
import type { MockRoute } from "./routes.ts";
export interface PopulateScheduleStoreOptions {
    seed?: number;
    flightsPerDay?: number;
    includeReturn?: boolean;
}
/**
 * Generate mock schedules for a set of routes and load them into
 * an `InMemoryScheduleStore` for use with `ScheduleLookup`.
 *
 * ```ts
 * const routes = generateRoutes({ market: "AU", seed: 42 });
 * const { store, lookup } = populateScheduleStore(routes, "2026-06-15");
 * const result = lookup.lookupSchedule("SYD", "MEL", "2026-06-15");
 * ```
 */
export declare function populateScheduleStore(routes: MockRoute[], date: string, options?: PopulateScheduleStoreOptions): {
    store: InMemoryScheduleStore;
    entries: ScheduleEntry[];
};
export declare const GenerateFareQuotesOptionsSchema: z.ZodObject<{
    seed: z.ZodOptional<z.ZodNumber>;
    cabinClass: z.ZodOptional<z.ZodEnum<{
        economy: "economy";
        business: "business";
        "premium-economy": "premium-economy";
        first: "first";
    }>>;
}, z.core.$strip>;
export type GenerateFareQuotesOptions = z.infer<typeof GenerateFareQuotesOptionsSchema>;
/**
 * Generate fare quotes for all flights in a set of mock routes, either
 * for a specific cabin class or all cabin classes.
 *
 * ```ts
 * const routes = generateRoutes({ market: "AU" });
 * const quotes = generateFareQuotes(routes, "2026-06-15", { cabinClass: "economy" });
 * ```
 */
export declare function generateFareQuotes(routes: MockRoute[], date: string, options?: GenerateFareQuotesOptions): FareQuote[];
/**
 * Populate a schedule store and generate fare quotes in one call.
 * Convenience wrapper around `populateScheduleStore` + `generateFareQuotes`.
 */
export declare function populateScheduleAndFares(routes: MockRoute[], date: string, options?: PopulateScheduleStoreOptions & GenerateFareQuotesOptions): {
    store: InMemoryScheduleStore;
    entries: ScheduleEntry[];
    quotes: FareQuote[];
};
//# sourceMappingURL=populate.d.ts.map