import { IUpdateDelayRunTripsData, IUpdateDelayTripsIdsData } from "../data-access/interfaces/TripRepositoryInterfaces";
import { IPositionTransformationResult } from "../interfaces/TransformationInterfaces";
import { TripStopsSchedule } from "../interfaces/VPInterfaces";
export declare class VPUtils {
    /**
     * Set the delay computation cache to expire after 1 hour (plus 5 minutes leeway)
     * to ensure the cache is available before data retention
     */
    static DELAY_COMPUTATION_CACHE_TTL: number;
    /**
     * Determine whether to create new position and its tracking status (trains only for now)
     *
     * @param  {TripStopsSchedule | undefined} tripStopSchedule - Cached trip stops for given block id (see Redis)
     * @param {IUpdateDelayRunTripsData | IUpdateDelayTripsIdsData} trip - New trip
     * @param {IPositionTransformationResult} position - Current position
     */
    static determineNewPositionTracking: (tripStopSchedule: TripStopsSchedule | undefined, trip: IUpdateDelayRunTripsData | IUpdateDelayTripsIdsData, position: IPositionTransformationResult) => boolean;
    /**
     * Determine tracking status
     *
     * @param {IUpdateDelayRunTripsData | IUpdateDelayTripsIdsData} gtfsTripId - new trip id
     * @param {TripStopsSchedule | undefined} tripStopSchedule - Cached trip stops for given block id (see Redis)
     * @param {IPositionTransformationResult} position - Current position
     */
    static determineTrackingStatus: (gtfsTripId: string, tripStopSchedule: TripStopsSchedule | undefined, position: IPositionTransformationResult) => boolean;
    /**
     * Get the next PXAT timestamp at which Redis keys should expire
     */
    static getNextExpireTimestamp: () => number | undefined;
}
