import type { EventRepo } from '../repo/event';
import type { SeatRepo } from '../repo/place/seat';
import type { StockHolderRepo } from '../repo/stockHolder';
import * as factory from '../factory';
import * as EventOfferService from './offer/event';
import * as EventServiceByCOAOfferService from './offer/eventServiceByCOA';
import * as MoneyTransferOfferService from './offer/moneyTransfer';
import * as ProductOfferService from './offer/product';
type ICategoryCodeChargeSpecification = factory.priceSpecification.IPriceSpecification<factory.priceSpecificationType.CategoryCodeChargeSpecification>;
export { EventOfferService as event, EventServiceByCOAOfferService as eventServiceByCOA, MoneyTransferOfferService as moneyTransfer, ProductOfferService as product };
/**
 * 座席にオファー情報を付加する
 */
export declare function addOffers2Seat(params: {
    seat: factory.place.seat.IPlace;
    availability: factory.itemAvailability;
    /**
     * 座席区分加算料金
     */
    priceSpecs: ICategoryCodeChargeSpecification[];
}): factory.place.seat.IPlaceWithOffer;
type ISeatAsEventOffer = Pick<factory.place.seat.IPlaceWithOffer, 'branchCode' | 'name' | 'seatingType'> & {
    containedInPlace?: {
        branchCode?: string;
    };
    offers?: Pick<factory.place.seat.IOffer, 'availability'>[];
};
/**
 * イベントに対する座席オファーを検索する
 */
export declare function searchEventSeatOffersWithPaging(params: {
    limit: number;
    page: number;
    branchCode?: {
        $eq?: string;
    };
    containedInPlace?: {
        branchCode?: {
            $eq?: string;
        };
    };
    event: {
        id: string;
    };
    $projection?: factory.place.seat.IProjection;
    options: {};
}): (repos: {
    event: EventRepo;
    stockHolder: StockHolderRepo;
    seat: SeatRepo;
}) => Promise<ISeatAsEventOffer[]>;
