import { RunTripsRedisRepository } from "../../../../ropid-gtfs/data-access/cache";
import { TripScheduleRepository } from "../../../../ropid-gtfs/data-access/precomputed";
import { PositionsRepository } from "../../vehicle-positions/data-access/PositionsRepository";
import type { TripsRepository } from "../../vehicle-positions/data-access/TripsRepository";
import { AbstractTask } from "@golemio/core/dist/integration-engine";
import { MessageProperties } from "@golemio/core/dist/shared/amqplib";
import { CommonRunsRepository } from "../data-access/CommonRunsRepository";
import { IProcessMetroRunsMessagesInput } from "../interfaces/IProcessMetroRunsMessagesInput";
import { MetroTransformedRunsValidationSchema } from "../schema/MetroTransformedRunsSchema";
import { MetroRunsMessageProcessingTransformation } from "../transformations/MetroRunsMessageProcessingTransformation";
import { MetroRailtrackGPSRepository } from "../../../../ropid-gtfs/workers/timetables/tasks/data-access/MetroRailtrackGPSRepository";
export declare class ProcessMetroRunMessagesTask extends AbstractTask<IProcessMetroRunsMessagesInput> {
    private readonly railtrackGPSRepository;
    private readonly positionsRepository;
    private readonly tripsRepository;
    private readonly runsRepository;
    private readonly runTripsRedisRepository;
    private readonly processingTransformation;
    private readonly tripScheduleRepository;
    readonly queueName = "processMetroRunMessages";
    readonly queueTtl: number;
    readonly schema: typeof MetroTransformedRunsValidationSchema;
    private readonly gtfsTripRunManager;
    constructor(railtrackGPSRepository: MetroRailtrackGPSRepository, positionsRepository: PositionsRepository, tripsRepository: TripsRepository, runsRepository: CommonRunsRepository, runTripsRedisRepository: RunTripsRedisRepository, processingTransformation: MetroRunsMessageProcessingTransformation, tripScheduleRepository: TripScheduleRepository);
    protected execute({ routeName, messages }: IProcessMetroRunsMessagesInput, msgProperties?: MessageProperties): Promise<void>;
    private processMessage;
    private enrichRunMessage;
}
