import { ParkingAverageOccupancyRepository } from "./ParkingAverageOccupancyRepository";
import { ParkingEntrancesRepository } from "./ParkingEntrancesRepository";
import { ParkingPaymentsRepository } from "./ParkingPaymentsRepository";
import { ParkingProhibitionsRepository } from "./ParkingProhibitionsRepository";
import { ParkingTariffRelationsRepository } from "./ParkingTariffRelationsRepository";
import { IParkingParams } from "../helpers/params/IParkingParams";
import { ParkingsLocationModel } from "../models/ParkingsLocationModel";
import { IParkingWithLocationAndOccupancyInfo } from "../../schema-definitions/models/interfaces/IParking";
import { SequelizeModel } from "@golemio/core/dist/output-gateway";
import { ParkingOpeningHoursRepository } from "./ParkingOpeningHoursRepository";
import { IRepositorySetup } from "./interfaces/IRepositorySetup";
export declare class ParkingRepository extends SequelizeModel {
    protected locationModel: ParkingsLocationModel;
    private averageOccupancyRepository;
    protected parkingOpeningHoursRepository: ParkingOpeningHoursRepository;
    protected entrancesRepository: ParkingEntrancesRepository;
    protected paymentsRepository: ParkingPaymentsRepository;
    protected parkingProhibitionsRepository: ParkingProhibitionsRepository;
    protected parkingTariffRelationsRepository: ParkingTariffRelationsRepository;
    static readonly defaultSetup: IRepositorySetup;
    private geoConfigHelper;
    protected readonly shouldHideSecondarySourcesFromPrimaryData: boolean;
    constructor(setup: IRepositorySetup, locationModel: ParkingsLocationModel, averageOccupancyRepository: ParkingAverageOccupancyRepository, parkingOpeningHoursRepository: ParkingOpeningHoursRepository, entrancesRepository: ParkingEntrancesRepository, paymentsRepository: ParkingPaymentsRepository, parkingProhibitionsRepository: ParkingProhibitionsRepository, parkingTariffRelationsRepository: ParkingTariffRelationsRepository);
    associate(): void;
    GetAll(params: IParkingParams): Promise<IParkingWithLocationAndOccupancyInfo[]>;
    GetOne(id: string, sources?: string[]): Promise<IParkingWithLocationAndOccupancyInfo | null>;
    private prepareWhereConditions;
    private readonly groupBy;
    private getUniqueParkingIds;
}
