import { TripWithLastPositionModel } from "../../../../schema-definitions/vehicle-positions/models/views";
import { SequelizeModel } from "@golemio/core/dist/output-gateway";
import { IGeoJSONFeature } from "@golemio/core/dist/output-gateway/Geo";
import { ModelStatic } from "@golemio/core/dist/shared/sequelize";
import { ITripGetAllOutput, ITripWithPositionRepository } from "../interfaces/ITripWithPositionRepository";
import { IVPRepositoryInstances } from "../interfaces/IVPRepositoryInstances";
export declare class TripWithLastPositionRepository extends SequelizeModel implements ITripWithPositionRepository {
    sequelizeModel: ModelStatic<TripWithLastPositionModel>;
    private dbConnector;
    constructor();
    Associate: (repositories: IVPRepositoryInstances) => void;
    /** Retrieves all vehicle trips
     * @param {object} options Options object with params
     * @param {number} [options.limit] Limit
     * @param {number} [options.offset] Offset
     * @param {string} [options.routeId] Filter trips by specific route id
     * @param {string} [options.routeShortName] Filter trips by specific route short name
     * @param {string} [options.tripId] Filter trips by specific trip id
     * @param {boolean} [options.includeNotTracking] Should include not tracking vehicle positions (those off a trip)
     * @returns Array of the retrieved records
     */
    GetAll: (options: {
        cisTripNumber?: number;
        routeId?: string;
        routeShortName?: string;
        tripId?: string;
        includeNotTracking?: boolean;
        includeNotPublic?: boolean;
        limit?: number;
        offset?: number;
        updatedSince?: Date | null;
        preferredTimezone: string;
    }) => Promise<ITripGetAllOutput>;
    GetOne(): never;
    /** Retrieves specific vehicle trip
     * @param {string} id Id of the trip
     * @param {object} [options] Options object with params
     * @param {string} [options.includeNotTracking] Returns last known trip even if it is not tracked at time
     * @param {boolean} [options.includePositions] Should include all vehicle positions
     * @returns Object of the retrieved record or null
     */
    GetOneByGTFSTripId: (id: string, options: {
        includeNotTracking?: boolean;
        includePositions?: boolean;
        includeNotPublic?: boolean;
        preferredTimezone: string;
    }) => Promise<IGeoJSONFeature | null>;
    private composeIncludes;
    private determinePossibleStatePositions;
}
