import { IMpvPositionContent } from "../../../../../schema-definitions/vehicle-positions/interfaces/IMpvMessageInterfaces";
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
import moment, { Moment } from "@golemio/core/dist/shared/moment-timezone";
import { IPositionTransformationResult, ITransformationElement, ITransformationResult } from "../interfaces/TransformationInterfaces";
export declare class MpvMessageTransformation extends AbstractTransformation<IMpvPositionContent, ITransformationElement | null> {
    private static ORIGIN_TIME_FORMAT;
    private static readonly CIS_PLATFORM_ELIGIBLE;
    private skipAgencyNames;
    private trainBeforeTrackMinutesInterval;
    name: string;
    constructor(config: ISimpleConfig);
    transform: (data: IMpvPositionContent | IMpvPositionContent[]) => ITransformationResult;
    protected transformInternal: (element: IMpvPositionContent) => ITransformationElement | null;
    /**
     * Deduce UTC timestamp of start of trip and UTC timestamp of current position
     *
     * @param {any} firstStopXML - parsed object of first stop
     * @param {string} positionTimestampXML - XML attribute of local timestamp of position (HH:mm:ss)
     * @returns {{ startTimestamp: Moment; positionTimestamp: Moment }}
     */
    protected deduceTimestamps(firstStopXML: any, positionTimestampXML: string | null): {
        startTimestamp: Moment;
        positionTimestamp: Moment;
    };
    static currentTimeInPrague(): Moment;
    static currentTimeInPragueFormatted(now?: Moment): string;
    private isCisPlatformEligible;
    /**
     * Returns -1 if start hour is 12-23 and now is 0-12, 1 if start hour is 18-23 and now 0-6, else 0
     *
     * @param {Moment} now - Moment of position
     * @param {Moment} start - Moment of start of trip
     * @returns {number}
     */
    private checkMidnight;
    private isBlacklistedAgency;
    private isTrainBeforeTrackWithPlatforms;
    private determinePrimaryKey;
    private determineValidity;
    /**
     * Fix source negative bearing value due to overflow by adding 256
     *
     * @param {number} bearing
     * @returns {number}
     */
    private fixSourceNegativeBearing;
    private getFirstStopCisNumber;
    private extractStopsForTrain;
    positionWithCisStopCoords(id: string, lat: string, lng: string, cpoz: string, positionTs: moment.Moment, validToTs: Date | null): IPositionTransformationResult;
    private determinePosition;
    private determineTrip;
}
