import type { StopID, Time } from "@gb-transit/gtfs-loader"; import type { Journey } from "../results/Journey.js"; import type { JourneyFilter } from "../results/filter/JourneyFilter.js"; import type { AsyncPlanner } from "./AsyncPlanner.js"; /** * Spreads depart after queries over a pool of planners, sending each to the one with the least * work outstanding. * * This makes a server answering many queries faster. It does not make one query faster: a single * depart after query is one scan, and the only way to divide that is to split the routes of a * round between threads, which is a change to the algorithm and not to this layer. */ export declare class ParallelDepartAfterQuery { private readonly planners; private readonly filters; private readonly inFlight; constructor(planners: AsyncPlanner[], filters?: JourneyFilter[]); plan(origin: StopID, destination: StopID, date: Date, time: Time): Promise; /** * Plan between a set of origins and a set of destinations, as GroupStationDepartAfterQuery does */ planGroup(origins: StopID[], destinations: StopID[], date: Date, time: Time): Promise; private leastBusy; }