import * as factory from '../../../factory';
import type { AcceptedOfferRepo } from '../../../repo/acceptedOffer';
import type { EventRepo } from '../../../repo/event';
import type { MerchantReturnPolicyRepo } from '../../../repo/merchantReturnPolicy';
import type { OfferRepo } from '../../../repo/offer/unitPriceInCatalog';
import type { OfferItemConditionRepo } from '../../../repo/offerItemCondition';
import type { OrderRepo } from '../../../repo/order';
import type { ProjectRepo } from '../../../repo/project';
import type { ReservationRepo } from '../../../repo/reservation';
import type { ISellerWithId, SellerRepo } from '../../../repo/seller';
import type { SellerReturnPolicyRepo } from '../../../repo/sellerReturnPolicy';
interface IPreStartOperationRepos {
    acceptedOffer: AcceptedOfferRepo;
    event: EventRepo;
    merchantReturnPolicy: MerchantReturnPolicyRepo;
    offer: OfferRepo;
    offerItemCondition: OfferItemConditionRepo;
    order: OrderRepo;
    project: ProjectRepo;
    reservation: ReservationRepo;
    seller: SellerRepo;
    sellerReturnPolicy: SellerReturnPolicyRepo;
}
type IPreStartOperation<T> = (repos: IPreStartOperationRepos) => Promise<T>;
type IFixedSeller = Pick<ISellerWithId, 'id' | 'name' | 'project' | 'hasMerchantReturnPolicy' | 'typeOf'>;
/**
 * 返品取引開始前処理
 */
declare function preStart(params: factory.transaction.returnOrder.IStartParamsWithoutDetail): IPreStartOperation<{
    transactionObject: factory.transaction.returnOrder.IObject;
    seller: IFixedSeller;
    expiresInSeconds: number;
}>;
export { preStart };
