import { IVPTripsLastPositionContext } from "../../../../../../schema-definitions/vehicle-positions/models/interfaces/VPTripsLastPositionInterfaces";
import { Feature, Point } from "@turf/turf";
import { IComputationTrip, ICurrentPositionProperties, IPositionToUpdate, IProcessedPositions, IShapeAnchorPoint, IUpdatePositionsIteratorOptions } from "../../interfaces/VPInterfaces";
import { ValidToCalculator } from "../ValidToCalculator";
import { BasePositionsManager } from "../BasePositionsManager";
import { IScheduleDto } from "../../../../../../schema-definitions/vehicle-positions/redis/interfaces/IGtfsRunTripCacheDto";
import { GTFSRouteTypeEnum } from "../../../../../../helpers/RouteTypeEnums";
import { ILogger } from "@golemio/core/dist/helpers";
export declare class RegionalBusPositionsManager extends BasePositionsManager {
    protected validToCalculator: ValidToCalculator;
    private logger;
    constructor(validToCalculator: ValidToCalculator, logger: ILogger);
    /**
     * Takes position one by one, set proper handler for type of position, and do the process of position
     */
    updatePositions: (options: IUpdatePositionsIteratorOptions, _schedule: IScheduleDto[] | undefined) => IProcessedPositions;
    /**
     * Picks only one closest point for multiple possible points based on delay of last position and stop times
     *
     * @param {Feature<Point, ICurrentPositionProperties>} currentPosition - Feature Point of current position
     * @param {IVPTripsLastPositionContext | null} context - Context state, holds information about previous positions
     * @param {number} startDayTimestamp - Unix timestamp of start of the day
     * @param {IShapeAnchorPoint[]} closestPts - All closest points of possible segments
     * @param {IComputationTrip} tripGtfsData - GTFS data and all set of known positions
     * @returns {IPositionToUpdate} - Result point as position to update in DB
     */
    protected getClosestPoint: (currentPosition: Feature<Point, ICurrentPositionProperties>, context: IVPTripsLastPositionContext | null, startDayTimestamp: number, thisClosestPoint: IShapeAnchorPoint, tripGtfsData: IComputationTrip, _gtfsRouteType?: GTFSRouteTypeEnum) => IPositionToUpdate;
    private determineStatePosition;
}
