import { OJPBaseRequest } from '../base-request';
import { ApiConfig } from '../../types/stage-config';
import { TripRequest_Response, TripRequest_Callback } from '../types/trip-request.type';
import { TripLocationPoint } from '../../trip';
import { Location } from '../../location/location';
import { Language } from '../../types/language-type';
import { TripModeType } from '../../types/trip-mode-type';
import { IndividualTransportMode } from '../../types/individual-mode.types';
import { ModeOfTransportType } from '../../types/mode-of-transport.type';
import { UseRealtimeDataEnumeration, XML_Config } from "../../types/_all";
export type TripRequestBoardingType = 'Dep' | 'Arr';
export declare class TripRequest extends OJPBaseRequest {
    fromTripLocation: TripLocationPoint;
    toTripLocation: TripLocationPoint;
    departureDate: Date;
    tripRequestBoardingType: TripRequestBoardingType;
    numberOfResults: number | null;
    numberOfResultsAfter: number | null;
    numberOfResultsBefore: number | null;
    publicTransportModes: ModeOfTransportType[];
    modeType: TripModeType;
    transportMode: IndividualTransportMode;
    includeLegProjection: boolean;
    viaLocations: TripLocationPoint[];
    response: TripRequest_Response | null;
    enableExtensions: boolean;
    useRealTimeDataType: UseRealtimeDataEnumeration;
    constructor(stageConfig: ApiConfig, language: Language, xmlConfig: XML_Config, requestorRef: string, fromTripLocation: TripLocationPoint, toTripLocation: TripLocationPoint, departureDate?: Date, tripRequestBoardingType?: TripRequestBoardingType, numberOfResults?: number | null, numberOfResultsBefore?: number | null, numberOfResultsAfter?: number | null, publicTransportModes?: ModeOfTransportType[]);
    private static Empty;
    static initWithResponseMock(mockText: string, xmlConfig: XML_Config, requestorRef: string): TripRequest;
    static initWithRequestMock(mockText: string, xmlConfig: XML_Config, requestorRef: string): TripRequest;
    static initWithStopRefs(stageConfig: ApiConfig, language: Language, xmlConfig: XML_Config, requestorRef: string, fromStopRef: string, toStopRef: string, departureDate?: Date, tripRequestBoardingType?: TripRequestBoardingType): TripRequest;
    static initWithLocationsAndDate(stageConfig: ApiConfig, language: Language, xmlConfig: XML_Config, requestorRef: string, fromLocation: Location, toLocation: Location, departureDate: Date, tripRequestBoardingType?: TripRequestBoardingType): TripRequest;
    static initWithTripLocationsAndDate(stageConfig: ApiConfig, language: Language, xmlConfig: XML_Config, requestorRef: string, fromTripLocation: TripLocationPoint | null, toTripLocation: TripLocationPoint | null, departureDate: Date, tripRequestBoardingType?: TripRequestBoardingType, includeLegProjection?: boolean, modeType?: TripModeType, transportMode?: IndividualTransportMode, viaTripLocations?: TripLocationPoint[], numberOfResults?: number | null, numberOfResultsBefore?: number | null, numberOfResultsAfter?: number | null, publicTransportModes?: ModeOfTransportType[]): TripRequest | null;
    protected buildRequestNode(): void;
    private addAdditionalRestrictions;
    fetchResponse(): Promise<TripRequest_Response>;
    fetchResponseWithCallback(callback: TripRequest_Callback): void;
    private parseTripRequestResponse;
}
