import type { Pbf as Protobuf } from '../../..';
/** NOTE: This field is still experimental, and subject to change. It may be formally adopted in the future. */
export declare class GTFSRealtimeTripModifications {
    #private;
    /** A list of selected trips affected by this TripModifications. */
    selectedTrips: GTFSRealtimeSelectedTrips[];
    /**
     * A list of start times in the real-time trip descriptor for the trip_id defined in trip_ids.
     * Useful to target multiple departures of a trip_id in a frequency-based trip.
     */
    startTimes: string[];
    /**
     * Dates on which the modifications occurs, in the YYYYMMDD format. Producers SHOULD only
     * transmit detours occurring within the next week.
     * The dates provided should not be used as user-facing information, if a user-facing start and
     * end date needs to be provided, they can be provided in the linked service alert with `service_alert_id`
     */
    serviceDates: string[];
    /** A list of modifications to apply to the affected trips. */
    modifications: GTFSRealtimeModification[];
    /**
     * @param pbf - The Protobuf object to read from
     * @param end - The end position of the message in the buffer
     */
    constructor(pbf: Protobuf, end: number);
}
/**
 * A `Modification` message replaces a span of n stop times from each affected trip starting at `start_stop_selector`.
 */
export declare class GTFSRealtimeModification {
    #private;
    /**
     * The stop selector of the first stop_time of the original trip that is to be affected by this modification.
     * Used in conjuction with `end_stop_selector`.
     * `start_stop_selector` is required and is used to define the reference stop used with `travel_time_to_stop`.
     */
    startStopSelector?: GTFSRealtimeStopSelector;
    /**
     * The stop selector of the last stop of the original trip that is to be affected by this modification.
     * The selection is inclusive, so if only one stop_time is replaced by that modification, `start_stop_selector`
     * and `end_stop_selector` must be equivalent.
     * If no stop_time is replaced, `end_stop_selector` must not be provided. It's otherwise required.
     */
    endStopSelector?: GTFSRealtimeStopSelector;
    /**
     * The number of seconds of delay to add to all departure and arrival times following the end of this modification.
     * If multiple modifications apply to the same trip, the delays accumulate as the trip advances.
     */
    propagatedModificationDelay: number;
    /**
     * A list of replacement stops, replacing those of the original trip.
     * The length of the new stop times may be less, the same, or greater than the number of replaced stop times.
     */
    replacementStops: GTFSRealtimeReplacementStop[];
    /**
     * An `id` value from the `FeedEntity` message that contains the `Alert` describing this Modification
     * for user-facing communication.
     */
    serviceAlertId?: string;
    /**
     * This timestamp identifies the moment when the modification has last been changed.
     * In POSIX time (i.e., number of seconds since January 1st 1970 00:00:00 UTC).
     */
    lastModifiedTime?: Date;
    /**
     * @param pbf - The Protobuf object to read from
     * @param end - The end position of the message in the buffer
     */
    constructor(pbf: Protobuf, end: number);
}
/**
 * NOTE: This field is still experimental, and subject to change. It may be formally adopted in the future.
 * Select a stop by stop sequence or by stop_id. At least one of the two values must be provided.
 */
export declare class GTFSRealtimeStopSelector {
    #private;
    /** Must be the same as in stop_times.txt in the corresponding GTFS feed. */
    stopSequence?: number;
    /** Must be the same as in stops.txt in the corresponding GTFS feed. */
    stopId?: string;
    /**
     * @param pbf - The Protobuf object to read from
     * @param end - The end position of the message in the buffer
     */
    constructor(pbf: Protobuf, end: number);
}
/** Selected trips affected by TripModifications. */
export declare class GTFSRealtimeSelectedTrips {
    #private;
    /** A list of trips affected with this replacement that all have the same new `shape_id`. */
    tripIds: string[];
    /**
     * The ID of the new shape for the modified trips in this SelectedTrips.
     * May refer to a new shape added using a GTFS-RT Shape message, or to an existing shape defined in
     * the GTFS-Static feed's shapes.txt.
     */
    shapeId?: string;
    /**
     * @param pbf - The Protobuf object to read from
     * @param end - The end position of the message in the buffer
     */
    constructor(pbf: Protobuf, end: number);
}
/** NOTE: This field is still experimental, and subject to change. It may be formally adopted in the future. */
export declare class GTFSRealtimeReplacementStop {
    #private;
    /**
     * The difference in seconds between the arrival time at this stop and the arrival time at the reference
     * stop. The reference stop is the stop prior to start_stop_selector. If the modification begins
     * at the first stop of the trip, then the first stop of the trip is the reference stop.
     * This value MUST be monotonically increasing and may only be a negative number if the first
     * stop of the original trip is the reference stop.
     */
    travelTimeToStop?: number;
    /**
     * The replacement stop ID which will now be visited by the trip. May refer to a new stop added
     * using a GTFS-RT Stop message, or to an existing stop defined in the GTFS-Static feed's stops.txt.
     * The stop MUST have location_type=0 (routable stops).
     */
    stopId?: string;
    /**
     * @param pbf - The Protobuf object to read from
     * @param end - The end position of the message in the buffer
     */
    constructor(pbf: Protobuf, end: number);
}
//# sourceMappingURL=modifications.d.ts.map