import { type GTFSAgency } from './agency';
import { type GTFSArea } from './areas';
import { type GTFSAttribution } from './attributions';
import { type GTFSBookingRule } from './bookingRules';
import { type GTFSCalendar } from './calendar';
import { type GTFSCalendarDate } from './calendarDates';
import { type GTFSFareAttribute } from './fareAttributes';
import { type GTFSFareLegJoinRule } from './fareLegJoinRules';
import { type GTFSFareLegRule } from './fareLegRules';
import { type GTFSFareMedia } from './fareMedia';
import { type GTFSFareProduct } from './fareProducts';
import { type GTFSFareRule } from './fareRules';
import { type GTFSFareTransferRule } from './fareTransferRules';
import { type GTFSFeedInfo } from './feedInfo';
import { type GTFSFrequency } from './frequencies';
import { type GTFSLevel } from './levels';
import { type GTFSLocationGroup } from './locationGroups';
import { type GTFSLocationGroupStop } from './locationGroupStops';
import { type GTFSNetwork } from './networks';
import { type GTFSPathway } from './pathways';
import { type GTFSRoute } from './routes';
import { type GTFSRouteNetwork } from './routeNetworks';
import { GTFSShapeProperties } from './shapes';
import { type GTFSStop, type GTFSStopProperties } from './stops';
import { type GTFSStopArea } from './stopAreas';
import { type GTFSStopTime } from './stopTimes';
import { type GTFSTimeframe } from './timeframes';
import { type GTFSTransfer } from './transfers';
import { type GTFSTranslation } from './translations';
import { type GTFSTrip } from './trips';
import { BufferJSONReader } from '../../';
import type { FeatureIterator } from '../..';
import type { Feature, LineStringGeometry, MValue, MultiPolygonGeometry, PointGeometry, PolygonGeometry, Properties } from '../../../geometry';
export * from './agency';
export * from './areas';
export * from './attributions';
export * from './bookingRules';
export * from './calendar';
export * from './calendarDates';
export * from './fareAttributes';
export * from './fareLegJoinRules';
export * from './fareLegRules';
export * from './fareMedia';
export * from './fareProducts';
export * from './fareRules';
export * from './fareTransferRules';
export * from './feedInfo';
export * from './frequencies';
export * from './levels';
export * from './locationGroups';
export * from './locationGroupStops';
export * from './networks';
export * from './pathways';
export * from './routeNetworks';
export * from './routes';
export * from './shapes';
export * from './stopAreas';
export * from './stops';
export * from './stopTimes';
export * from './timeframes';
export * from './transfers';
export * from './translations';
export * from './trips';
/** A piece of the GTFS schedule */
export interface Piece {
    filename: string;
    data: string;
}
/**
 * `locations.geojson` data properties
 * Defines zones where riders can request either pickup or drop off by on-demand services.
 * These zones are represented as GeoJSON polygons.
 */
export interface GTFSLocationsProperties extends Properties {
    stop_name: string;
    stop_desc: string;
}
/**
 * # GTFS Schedule Reader
 *
 * ## Description
 * Schedule class that pulls in all of the GTFS schedule files and parses them into a single object
 * implements the {@link FeatureIterator} interface.
 *
 * ## Usage
 * ```ts
 * import { buildGTFSSchedule } from 's2-tools';
 *
 * const schedule = await buildGTFSSchedule(gzipData);
 * ```
 */
export declare class GTFSScheduleReader implements FeatureIterator {
    agencies: Record<string, GTFSAgency>;
    areas?: GTFSArea[];
    attributions?: Record<string, GTFSAttribution>;
    bookingRules?: Record<string, GTFSBookingRule>;
    calendar?: GTFSCalendar[];
    calendarDates?: GTFSCalendarDate[];
    fareAttributes?: Record<string, GTFSFareAttribute>;
    fareLegJoinRules?: GTFSFareLegJoinRule[];
    fareLegRules?: GTFSFareLegRule[];
    fareMedia?: Record<string, GTFSFareMedia>;
    fareProducts?: Record<string, GTFSFareProduct>;
    fareRules?: GTFSFareRule[];
    fareTransferRules?: GTFSFareTransferRule[];
    feedInfo?: Record<string, GTFSFeedInfo>;
    frequencies?: GTFSFrequency[];
    levels?: Record<string, GTFSLevel>;
    locationGroups?: Record<string, GTFSLocationGroup>;
    locationGroupStops?: GTFSLocationGroupStop[];
    networks?: Record<string, GTFSNetwork>;
    pathways?: Record<string, GTFSPathway>;
    routeNetworks?: GTFSRouteNetwork[];
    routes: Record<string, GTFSRoute>;
    shapes?: Record<string, Feature<undefined, MValue, GTFSShapeProperties, LineStringGeometry>>;
    stopAreas?: GTFSStopArea[];
    stops?: Record<string, GTFSStop>;
    stopTimes: GTFSStopTime[];
    timeframes?: Record<string, GTFSTimeframe>;
    transfers?: GTFSTransfer[];
    translations?: GTFSTranslation[];
    trips: GTFSTrip[];
    geojson?: BufferJSONReader<undefined, MValue, GTFSLocationsProperties>;
    /** @param pieces - all files */
    constructor(pieces: Piece[]);
    /**
     * TODO: Add proeprties from other files like "color"
     * TODO: All features should be parsed as VectorGeometry
     * Yields all of the shapes
     * @yields an iterator that contains shapes, stops, location data, and routes
     */
    [Symbol.asyncIterator](): AsyncGenerator<Feature<undefined, MValue, GTFSShapeProperties, LineStringGeometry> | Feature<undefined, MValue, GTFSLocationsProperties, MultiPolygonGeometry | PolygonGeometry> | Feature<undefined, MValue, GTFSStopProperties, PointGeometry>>;
}
/**
 * Builds a GTFSScheduleReader from a gzip folder
 * @param gzipData - the gzip folder to parse
 * @returns - a Schedule class
 */
export declare function buildGTFSSchedule(gzipData: ArrayBufferLike): Promise<GTFSScheduleReader>;
//# sourceMappingURL=index.d.ts.map