export declare enum Occupancy {
    EMPTY = 0,
    MANY_SEATS_AVAILABLE = 1,
    FEW_SEATS_AVAILABLE = 2,
    STANDING_ROOM_ONLY = 3,
    CRUSHED_STANDING_ROOM_ONLY = 4,
    FULL = 5,
    NOT_ACCEPTING_PASSENGERS = 6,
    NO_DATA_AVAILABLE = 7,
    NOT_BOARDABLE = 8,
    UNKNOWN = -1
}
export declare enum Congestion {
    UNKNOWN_CONGESTION_LEVEL = 0,
    RUNNING_SMOOTHLY = 1,
    STOP_AND_GO = 2,
    CONGESTION = 3,
    SEVERE_CONGESTION = 4
}
declare interface Time {
    delay?: number;
    time?: number;
    uncertainty?: number;
}
interface RealTimeTrip {
    trip_id?: string;
    start_time?: string;
    start_date?: string;
    schedule_relationship?: TripScheduleRelationship;
    route_id?: string;
    direction_id?: number;
}
export declare enum TripScheduleRelationship {
    SCHEDULED = 0,
    ADDED = 1,
    UNSCHEDULED = 2,
    CANCELED = 3
}
export declare enum StopTimeUpdateScheduleRelationship {
    SCHEDULED = 0,
    SKIPPED = 1,
    NO_DATA = 2
}
export interface Vehicle {
    id?: string;
    label?: string;
    license_plate?: string;
}
export interface TripUpdate {
    trip: RealTimeTrip;
    stop_time_update?: StopTimeUpdate[];
    vehicle?: Vehicle;
    timestamp?: number;
    delay?: number;
}
export interface VehiclePosition {
    trip?: RealTimeTrip;
    position?: Position;
    current_stop_sequence?: number;
    stop_id?: string;
    current_status?: VehicleStopStatus;
    congestion_level?: Congestion;
    occupancy_status?: Occupancy;
    vehicle?: Vehicle;
    timestamp?: number;
}
export interface Entity {
    id: string;
    trip_update?: TripUpdate;
    vehicle?: VehiclePosition;
    is_deleted?: boolean;
    alert?: Alert;
}
export interface TimeRange {
    start?: number;
    end?: number;
}
export declare enum Cause {
    UNKNOWN_CAUSE = 0,
    OTHER_CAUSE = 1,
    TECHNICAL_PROBLEM = 2,
    STRIKE = 3,
    DEMONSTRATION = 4,
    ACCIDENT = 5,
    HOLIDAY = 6,
    WEATHER = 7,
    MAINTENANCE = 8,
    CONSTRUCTION = 9,
    POLICE_ACTIVITY = 10,
    MEDICAL_EMERGENCY = 11
}
export declare enum Effect {
    NO_SERVICE = 0,
    REDUCED_SERVICE = 1,
    SIGNIFICANT_DELAYS = 2,
    DETOUR = 3,
    ADDITIONAL_SERVICE = 4,
    MODIFIED_SERVICE = 5,
    OTHER_EFFECT = 6,
    UNKNOWN_EFFECT = 7,
    STOP_MOVED = 8,
    NO_EFFECT = 9,
    ACCESSIBILITY_ISSUE = 10
}
export declare enum SeverityLevel {
    UNKNOWN_SEVERITY = 0,
    INFO = 1,
    WARNING = 2,
    SEVERE = 3
}
export interface TranslatedString {
    translation: Translation[];
}
export interface Translation {
    text: string;
    language?: string;
}
export interface Alert {
    active_period?: TimeRange[];
    informed_entity: EntitySelector[];
    cause?: Cause;
    effect?: Effect;
    url?: TranslatedString;
    header_text: TranslatedString;
    description_text: TranslatedString;
    tts_header_text?: TranslatedString;
    tts_description_text?: TranslatedString;
    severity_level?: SeverityLevel;
}
export interface Position {
    latitude: number;
    longitude: number;
    bearing?: number;
    odometer?: number;
    speed?: number;
}
export interface StopTimeUpdate {
    stop_sequence?: number;
    stop_id?: string;
    arrival?: Time;
    departure?: Time;
    schedule_relationship?: StopTimeUpdateScheduleRelationship;
}
export interface EntitySelector {
    agency_id?: string;
    route_id?: string;
    route_type?: number;
    direction_id?: number;
    trip?: RealTimeTrip;
    stop_id?: string;
}
export declare enum VehicleStopStatus {
    INCOMING_AT = 0,
    STOPPED_AT = 1,
    IN_TRANSIT_TO = 2
}
export declare enum Incrementality {
    FULL_DATASET = 0,
    DIFFERENTIAL = 1
}
export interface FeedHeader {
    gtfs_realtime_version: string;
    incrementality: Incrementality;
    timestamp: number;
}
export interface FeedMessage {
    header: FeedHeader;
    entity?: Entity[];
}
export interface GTFSRealtime {
    status: string;
    response: FeedMessage;
}
export {};
