import type * as COA from '@motionpicture/coa-service';
import * as factory from '../../../factory';
import { Settings } from '../../../settings';
import type { ActionRepo } from '../../../repo/action';
import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
import type { OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
import type { ReservationRepo } from '../../../repo/reservation';
import type { SettingRepo } from '../../../repo/setting';
import type { StockHolderRepo } from '../../../repo/stockHolder';
import type { TaskRepo } from '../../../repo/task';
import type { TransactionRepo } from '../../../repo/transaction';
interface IVoidTransactionRepos {
    action: ActionRepo;
    assetTransaction: AssetTransactionRepo;
    stockHolder: StockHolderRepo;
    offerRateLimit: OfferRateLimitRepo;
    orderInTransaction: OrderInTransactionRepo;
    reservation: ReservationRepo;
    setting: SettingRepo;
    task: TaskRepo;
    transaction: TransactionRepo;
    /**
     * COAオファー承認取消の場合必須
     */
    reserveService?: COA.service.Reserve;
}
/**
 * 興行オファー承認取消(タスクから実行 or apiから実行))
 * 取引中の承認アクション全てについて処理する or 特定の承認アクションについて処理する
 */
declare function voidTransaction(params: factory.task.IData<factory.taskName.VoidReserveTransaction> & {
    project: {
        id: string;
    };
    sameAs?: {
        /**
         * 実行元タスクID
         */
        id: string;
    };
}): (repos: IVoidTransactionRepos, settings: Settings) => Promise<void>;
export { voidTransaction };
