/**
 * 口座サービス
 * 開設、閉鎖等、口座アクション実行など
 */
import * as factory from '../factory';
import type { AccountRepo } from '../repo/account';
import type { AccountTransactionRepo } from '../repo/accountTransaction';
export type IOpenOperation<T> = (repos: {
    account: AccountRepo;
}) => Promise<T>;
/**
 * 口座を開設する
 */
export declare function open(params: {
    project: {
        id: string;
    };
    typeOf: string;
    /**
     * 口座タイプ
     */
    accountType: string;
    /**
     * 口座番号
     * ユニークになるように、Pecorinoサービス利用側で番号を生成すること
     */
    accountNumber: string;
    /**
     * 口座名義
     */
    name: string;
    /**
     * 初期金額
     */
    initialBalance: number;
}[]): IOpenOperation<factory.account.IAccount[]>;
/**
 * 口座を解約する
 */
/**
 * 転送する
 * 確定取引結果から、実際の転送アクションを実行します。
 */
export declare function transferMoney(actionAttributes: factory.account.action.moneyTransfer.IAttributes): (repos: {
    account: AccountRepo;
}) => Promise<void>;
/**
 * 転送取消
 * 期限切れ、あるいは、中止された取引から、転送をアクションを取り消します。
 */
export declare function cancelMoneyTransfer(params: {
    transaction: {
        typeOf: factory.account.transactionType;
        id: string;
    };
}): (repos: {
    account: AccountRepo;
    accountTransaction: AccountTransactionRepo;
}) => Promise<void>;
