import { ICommonRunWithMessageDto } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto";
import { ICommonRunsModel } from "../../../../../schema-definitions/vehicle-positions/models/interfaces/ICommonRunsModel";
import { IScheduleDto } from "../../../../../schema-definitions/vehicle-positions/redis/interfaces/IGtfsRunTripCacheDto";
import { IModel } from "@golemio/core/dist/integration-engine/models";
import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
import Sequelize from "@golemio/core/dist/shared/sequelize";
import { AbstractRunRepository } from "./AbstractRunRepository";
import { CommonRunsMessagesRepository } from "./CommonRunsMessagesRepository";
export declare class CommonRunsRepository extends AbstractRunRepository implements IModel {
    /** Model name */
    name: string;
    /** The Sequelize Model */
    sequelizeModel: Sequelize.ModelCtor<any>;
    /** The Sequelize Model for temporary table */
    protected tmpSequelizeModel: Sequelize.ModelCtor<any> | null;
    /** Validation helper */
    protected validator: JSONSchemaValidator;
    /** Type/Strategy of saving the data */
    protected savingType: "insertOnly" | "insertOrUpdate";
    /** Associated vehiclepositions_runs_messages repository */
    protected runsMessagesRepository: CommonRunsMessagesRepository;
    /** Precomputed scheduled trips model */
    private tripScheduleRepository;
    constructor();
    getRunRecordForUpdate: (run: ICommonRunsModel) => Promise<ICommonRunsModel | null>;
    createAndAssociate: ({ run, run_message }: ICommonRunWithMessageDto) => Promise<ICommonRunWithMessageDto>;
    updateAndAssociate: ({ run, run_message }: ICommonRunWithMessageDto, runId: string) => Promise<{
        run: any;
        run_message: any;
    }>;
    getScheduledTrips: (origin_route_name: string, run_number: string | number, msg_last_timestamp: string) => Promise<IScheduleDto[]>;
}
