/**
 * Route lookup and query functions
 *
 * Provides type-safe utilities for finding routes from the global route database.
 */
import type { GlobalRoutes } from "./schema";
import type { AirportCode } from "../iata-types/airport";
/**
 * Query parameters for route lookup
 */
export interface RouteQuery {
    /** Origin airport IATA code */
    origin: AirportCode;
    /** Destination airport IATA code (optional - returns all routes from origin if not specified) */
    destination?: AirportCode;
    /** Filter by specific airline codes (optional) */
    airlines?: string[];
    /** Maximum distance in kilometers (optional) */
    maxDistanceKm?: number;
    /** Maximum duration in minutes (optional) */
    maxDurationMin?: number;
}
/**
 * Result of a route query
 */
export interface RouteResult {
    /** Origin airport IATA code */
    origin: AirportCode;
    /** Destination airport IATA code */
    destination: AirportCode;
    /** List of carrier IATA codes serving this route */
    carriers: string[];
    /** Distance in kilometers */
    distanceKm: number;
    /** Duration in minutes */
    durationMin: number;
}
/**
 * Find routes matching the query parameters
 *
 * @param routes - The global route database
 * @param query - Query parameters
 * @returns Array of matching routes
 */
export declare function findRoutes(routes: GlobalRoutes, query: RouteQuery): RouteResult[];
/**
 * Check if a route exists between two airports
 *
 * @param routes - The global route database
 * @param origin - Origin airport IATA code
 * @param destination - Destination airport IATA code
 * @returns True if route exists, false otherwise
 */
export declare function routeExists(routes: GlobalRoutes, origin: AirportCode, destination: AirportCode): boolean;
/**
 * Get all destinations from a given origin airport
 *
 * @param routes - The global route database
 * @param origin - Origin airport IATA code
 * @returns Array of destination IATA codes
 */
export declare function getDestinations(routes: GlobalRoutes, origin: AirportCode): AirportCode[];
/**
 * Get route statistics for an airport
 *
 * @param routes - The global route database
 * @param iata - Airport IATA code
 * @returns Statistics including route count, carrier count, and total distance
 */
export declare function getAirportRouteStats(routes: GlobalRoutes, iata: AirportCode): {
    routeCount: number;
    carrierCount: number;
    totalDistanceKm: number;
} | null;
//# sourceMappingURL=lookup.d.ts.map