import { IExtendedMetroRunInputForProcessing } from "../../runs/interfaces/IMetroRunInputForProcessing";
import { IGtfsRtTripDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/IGtfsRtTripDto";
import { IVPTripsModel } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/IVPTripsModel";
import { IVPTripsPositionAttributes } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/IVPTripsPositionAttributes";
import { IScheduleDto } from "../../../../../schema-definitions/vehicle-positions/redis/interfaces/IGtfsRunTripCacheDto";
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
import Sequelize from "@golemio/core/dist/shared/sequelize";
import { ProviderSourceTypeEnum } from "../helpers/ProviderSourceTypeEnum";
import { IUpdateRunsGtfsTripInput } from "../interfaces/IUpdateRunsGtfsTripInput";
import { IPropagateDelay } from "../interfaces/VPInterfaces";
import { IEnrichedTripForPublicApi, IUpdateDelayRunTripsData, IUpdateDelayTripsIdsData, IUpdateGTFSTripIdData } from "./interfaces/TripRepositoryInterfaces";
export declare class TripsRepository extends PostgresModel implements IModel {
    private logger;
    private connector;
    private positionsRepository;
    private descriptorRepository;
    constructor();
    findAllAssocTripIds: (tripIds: string[]) => Promise<IUpdateDelayTripsIdsData[]>;
    findGTFSTripId: (trip: IUpdateGTFSTripIdData) => Promise<IUpdateDelayTripsIdsData | IUpdateDelayTripsIdsData[] | undefined>;
    deleteNHoursOldData: (hours: number) => Promise<number>;
    private deduceTimestamps;
    upsertCommonRunTrip: ({ run }: IUpdateRunsGtfsTripInput, gtfsTrip: IScheduleDto) => Promise<IUpdateDelayRunTripsData>;
    upsertMetroRunTrip: (runInput: IExtendedMetroRunInputForProcessing, gtfsTrip: IScheduleDto) => Promise<IUpdateDelayRunTripsData>;
    upsertEntity: (tripDto: Partial<IVPTripsModel>) => Promise<IUpdateDelayRunTripsData>;
    getPropagateDelayTripsWithPositions: (data: IPropagateDelay) => Promise<Array<IVPTripsModel & {
        last_position: IVPTripsPositionAttributes;
    }>>;
    hasOne: (model: any, options: any) => any;
    findAll: (options: Sequelize.FindOptions<any> | undefined) => Promise<any>;
    private findGTFSTripIdBasic;
    private findGTFSTripIdsTrain;
    /**
     * Return all valid trips for GTFS Realtime feed
     *
     * @returns {Promise<any[]>}
     */
    findAllForGTFSRt: (minValidToDateTime: Date) => Promise<IGtfsRtTripDto[]>;
    findAllForPublicCache: (minValidToDateTime: Date) => Promise<IEnrichedTripForPublicApi[]>;
    refreshGtfsTripData: () => Promise<void>;
    getTripsWithInvalidGtfsTripId: (providerSourceType: ProviderSourceTypeEnum) => Promise<IUpdateGTFSTripIdData[]>;
}
