import type { AggregateReservationRepo } from '../../../repo/aggregateReservation';
import { EventRepo } from '../../../repo/event';
import type { OfferRepo } from '../../../repo/offer/unitPriceInCatalog';
import type { OfferCatalogRepo } from '../../../repo/offerCatalog';
import { ScreeningRoomRepo } from '../../../repo/place/screeningRoom';
import type { ProductRepo } from '../../../repo/product';
import { OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
import type { ReservationRepo } from '../../../repo/reservation';
import type { StockHolderRepo } from '../../../repo/stockHolder';
import * as factory from '../../../factory';
type IAggregateOffersOperation<T> = (repos: {
    aggregateReservation: AggregateReservationRepo;
    event: EventRepo;
    stockHolder: StockHolderRepo;
    offer: OfferRepo;
    offerCatalog: OfferCatalogRepo;
    offerRateLimit: OfferRateLimitRepo;
    screeningRoom: ScreeningRoomRepo;
    product: ProductRepo;
    reservation: ReservationRepo;
}) => Promise<T>;
/**
 * イベントに対するオファー集計
 */
declare function aggregateOffers(params: {
    id: string;
    typeOf: factory.eventType.ScreeningEvent | factory.eventType.Event;
}): IAggregateOffersOperation<void>;
export { aggregateOffers };
