import type { ScheduleEntry, ScheduleLookupResult } from "./types.ts";
export interface Logger {
    error(msg: string, fields?: Record<string, unknown>): void;
    warn(msg: string, fields?: Record<string, unknown>): void;
}
export interface ScheduleCacheConfig {
    enabled: boolean;
    maxSize: number;
    ttlMs: number;
    /** ISO 3166-1 alpha-2 region code for holiday warnings (e.g. "AU", "US"). */
    holidayRegion?: string;
}
export interface ScheduleStore {
    lookup(origin: string, destination: string, date: string): ScheduleEntry[];
}
export declare class ScheduleLookup {
    private readonly cache;
    private readonly cacheConfig;
    private readonly store;
    logger?: Logger;
    constructor(store: ScheduleStore, cacheConfig?: Partial<ScheduleCacheConfig>, logger?: Logger);
    lookupSchedule(origin: string, destination: string, date: string): ScheduleLookupResult;
    clearCache(): void;
}
export declare class InMemoryScheduleStore implements ScheduleStore {
    private readonly entries;
    addEntry(entry: ScheduleEntry): void;
    addEntries(entries: ScheduleEntry[]): void;
    lookup(origin: string, destination: string, date: string): ScheduleEntry[];
}
//# sourceMappingURL=lookup.d.ts.map