import type { AccountingReportRepo } from '../../../repo/accountingReport';
import type { ActionRepo } from '../../../repo/action';
import type { CredentialsRepo } from '../../../repo/credentials';
import type { PaymentServiceRepo } from '../../../repo/paymentService';
import type { TaskRepo } from '../../../repo/task';
import * as factory from '../../../factory';
import { Settings } from '../../../settings';
interface IRefundOperationRepos {
    action: ActionRepo;
    accountingReport: AccountingReportRepo;
    credentials: CredentialsRepo;
    paymentService: PaymentServiceRepo;
    task: TaskRepo;
}
type IRefundOperation<T> = (repos: IRefundOperationRepos, settings: Settings) => Promise<T>;
/**
 * 決済カード返金
 */
declare function refundMovieTicket(params: Pick<factory.action.trade.refund.IAttributes, 'agent' | 'object' | 'potentialActions' | 'project' | 'recipient' | 'typeOf' | 'instrument'> & {
    purpose: factory.action.trade.refund.IPurposeAsReturnAction | factory.action.trade.refund.IOrderAsPayPurpose;
    sameAs?: {
        id: string;
    };
}, options: {
    callOnPayActionCompleted: boolean;
}): IRefundOperation<void>;
export { refundMovieTicket };
