export declare const tip20ChannelReserve: readonly [{
    readonly name: "CLOSE_GRACE_PERIOD";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "VOUCHER_TYPEHASH";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "open";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "payee";
    }, {
        readonly type: "address";
        readonly name: "operator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint96";
        readonly name: "deposit";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "address";
        readonly name: "authorizedSigner";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
    }];
}, {
    readonly name: "settle";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "topUp";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }, {
        readonly type: "uint96";
        readonly name: "additionalDeposit";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "close";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }, {
        readonly type: "uint96";
        readonly name: "captureAmount";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "requestClose";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "withdraw";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getChannel";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "tuple";
            readonly name: "descriptor";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "payer";
            }, {
                readonly type: "address";
                readonly name: "payee";
            }, {
                readonly type: "address";
                readonly name: "operator";
            }, {
                readonly type: "address";
                readonly name: "token";
            }, {
                readonly type: "bytes32";
                readonly name: "salt";
            }, {
                readonly type: "address";
                readonly name: "authorizedSigner";
            }, {
                readonly type: "bytes32";
                readonly name: "expiringNonceHash";
            }];
        }, {
            readonly type: "tuple";
            readonly name: "state";
            readonly components: readonly [{
                readonly type: "uint96";
                readonly name: "settled";
            }, {
                readonly type: "uint96";
                readonly name: "deposit";
            }, {
                readonly type: "uint32";
                readonly name: "closeRequestedAt";
            }];
        }];
    }];
}, {
    readonly name: "getChannelState";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint96";
            readonly name: "settled";
        }, {
            readonly type: "uint96";
            readonly name: "deposit";
        }, {
            readonly type: "uint32";
            readonly name: "closeRequestedAt";
        }];
    }];
}, {
    readonly name: "getChannelStatesBatch";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32[]";
        readonly name: "channelIds";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple[]";
        readonly components: readonly [{
            readonly type: "uint96";
            readonly name: "settled";
        }, {
            readonly type: "uint96";
            readonly name: "deposit";
        }, {
            readonly type: "uint32";
            readonly name: "closeRequestedAt";
        }];
    }];
}, {
    readonly name: "computeChannelId";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "payer";
    }, {
        readonly type: "address";
        readonly name: "payee";
    }, {
        readonly type: "address";
        readonly name: "operator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "address";
        readonly name: "authorizedSigner";
    }, {
        readonly type: "bytes32";
        readonly name: "expiringNonceHash";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "getVoucherDigest";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "domainSeparator";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "ChannelOpened";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "operator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "address";
        readonly name: "authorizedSigner";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "bytes32";
        readonly name: "expiringNonceHash";
    }, {
        readonly type: "uint96";
        readonly name: "deposit";
    }];
}, {
    readonly name: "Settled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }, {
        readonly type: "uint96";
        readonly name: "deltaPaid";
    }, {
        readonly type: "uint96";
        readonly name: "newSettled";
    }];
}, {
    readonly name: "TopUp";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint96";
        readonly name: "additionalDeposit";
    }, {
        readonly type: "uint96";
        readonly name: "newDeposit";
    }];
}, {
    readonly name: "CloseRequested";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "closeGraceEnd";
    }];
}, {
    readonly name: "ChannelClosed";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint96";
        readonly name: "settledToPayee";
    }, {
        readonly type: "uint96";
        readonly name: "refundedToPayer";
    }];
}, {
    readonly name: "CloseRequestCancelled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }];
}, {
    readonly name: "ChannelAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ChannelNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotPayer";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotPayeeOrOperator";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPayee";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ZeroDeposit";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiringNonceHashNotSet";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AmountExceedsDeposit";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AmountNotIncreasing";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "CaptureAmountInvalid";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "CloseNotReady";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "DepositOverflow";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const tip20: readonly [{
    readonly name: "name";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "symbol";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "decimals";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint8";
    }];
}, {
    readonly name: "totalSupply";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "quoteToken";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "nextQuoteToken";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "balanceOf";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "transfer";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "approve";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "spender";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "allowance";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
    }, {
        readonly type: "address";
        readonly name: "spender";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "transferFrom";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
    }, {
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "mint";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burn";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "currency";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "supplyCap";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "paused";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "transferPolicyId";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "logoURI";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "setLogoURI";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "newLogoURI";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burnBlocked";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "mintWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burnWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferFromWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
    }, {
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "changeTransferPolicyId";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "newPolicyId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setSupplyCap";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "newSupplyCap";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "pause";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "unpause";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "setNextQuoteToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newQuoteToken";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "completeQuoteTokenUpdate";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "PAUSE_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "UNPAUSE_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "ISSUER_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "BURN_BLOCKED_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "permit";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
    }, {
        readonly type: "address";
        readonly name: "spender";
    }, {
        readonly type: "uint256";
        readonly name: "value";
    }, {
        readonly type: "uint256";
        readonly name: "deadline";
    }, {
        readonly type: "uint8";
        readonly name: "v";
    }, {
        readonly type: "bytes32";
        readonly name: "r";
    }, {
        readonly type: "bytes32";
        readonly name: "s";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "nonces";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "DOMAIN_SEPARATOR";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "distributeReward";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setRewardRecipient";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "recipient";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "claimRewards";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "optedInSupply";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "globalRewardPerToken";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "userRewardInfo";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "rewardRecipient";
        }, {
            readonly type: "uint256";
            readonly name: "rewardPerToken";
        }, {
            readonly type: "uint256";
            readonly name: "rewardBalance";
        }];
    }];
}, {
    readonly name: "getPendingRewards";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "Transfer";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "Approval";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "spender";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "Mint";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "Burn";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "BurnBlocked";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "TransferWithMemo";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
        readonly indexed: true;
    }];
}, {
    readonly name: "TransferPolicyUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "newPolicyId";
        readonly indexed: true;
    }];
}, {
    readonly name: "SupplyCapUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "newSupplyCap";
        readonly indexed: true;
    }];
}, {
    readonly name: "PauseStateUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "isPaused";
    }];
}, {
    readonly name: "NextQuoteTokenSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "nextQuoteToken";
        readonly indexed: true;
    }];
}, {
    readonly name: "QuoteTokenUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "newQuoteToken";
        readonly indexed: true;
    }];
}, {
    readonly name: "RewardDistributed";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "funder";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "RewardRecipientSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "holder";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "recipient";
        readonly indexed: true;
    }];
}, {
    readonly name: "LogoURIUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "string";
        readonly name: "newLogoURI";
    }];
}, {
    readonly name: "InsufficientBalance";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "available";
    }, {
        readonly type: "uint256";
        readonly name: "required";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
}, {
    readonly name: "InsufficientAllowance";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "SupplyCapExceeded";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSupplyCap";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPayload";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PolicyForbids";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidRecipient";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ContractPaused";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidCurrency";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidQuoteToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidAmount";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NoOptedInSupply";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ProtectedAddress";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "Uninitialized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidTransferPolicyId";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PermitExpired";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "LogoURITooLong";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidLogoURI";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "hasRole";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bytes32";
        readonly name: "role";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "getRoleAdmin";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "grantRole";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }, {
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "revokeRole";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }, {
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "renounceRole";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setRoleAdmin";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }, {
        readonly type: "bytes32";
        readonly name: "adminRole";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "RoleMembershipUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "sender";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "hasRole";
    }];
}, {
    readonly name: "RoleAdminUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "newAdminRole";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "sender";
        readonly indexed: true;
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const validatorConfigV2: readonly [{
    readonly name: "getActiveValidators";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "tuple[]";
        readonly name: "validators";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "getInitializedAtHeight";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "owner";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "validatorCount";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "validatorByIndex";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "validatorByAddress";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validatorAddress";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "validatorByPublicKey";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "publicKey";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "getNextNetworkIdentityRotationEpoch";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "isInitialized";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "addValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validatorAddress";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
    }];
}, {
    readonly name: "deactivateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "rotateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setFeeRecipient";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setIpAddresses";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferValidatorOwnership";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "address";
        readonly name: "newAddress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferOwnership";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newOwner";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setNetworkIdentityRotationEpoch";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "epoch";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "migrateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "initializeIfMigrated";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "ValidatorAdded";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }];
}, {
    readonly name: "ValidatorDeactivated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }];
}, {
    readonly name: "ValidatorRotated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "deactivatedIndex";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "oldPublicKey";
    }, {
        readonly type: "bytes32";
        readonly name: "newPublicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "FeeRecipientUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "IpAddressesUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "ValidatorOwnershipTransferred";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "oldAddress";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "newAddress";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "OwnershipTransferred";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "oldOwner";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "newOwner";
        readonly indexed: true;
    }];
}, {
    readonly name: "ValidatorMigrated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }];
}, {
    readonly name: "NetworkIdentityRotationEpochSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "previousEpoch";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "nextEpoch";
        readonly indexed: true;
    }];
}, {
    readonly name: "Initialized";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "height";
    }];
}, {
    readonly name: "SkippedValidatorMigration";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }];
}, {
    readonly name: "AlreadyInitialized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "IngressAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "ingress";
    }];
}, {
    readonly name: "EmptyV1ValidatorSet";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidMigrationIndex";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidOwner";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPublicKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignatureFormat";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidValidatorAddress";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "MigrationNotComplete";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotInitialized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotIp";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}, {
    readonly name: "NotIpPort";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}, {
    readonly name: "PublicKeyAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AddressAlreadyHasValidator";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorAlreadyDeactivated";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const signatureVerifier: readonly [{
    readonly name: "recover";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "hash";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
        readonly name: "signer";
    }];
}, {
    readonly name: "verify";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "signer";
    }, {
        readonly type: "bytes32";
        readonly name: "hash";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "InvalidFormat";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const stablecoinDex: readonly [{
    readonly name: "createPair";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "base";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
        readonly name: "key";
    }];
}, {
    readonly name: "place";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
}, {
    readonly name: "placeFlip";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "int16";
        readonly name: "flipTick";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
}, {
    readonly name: "cancel";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "cancelStaleOrder";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "swapExactAmountIn";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountIn";
    }, {
        readonly type: "uint128";
        readonly name: "minAmountOut";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountOut";
    }];
}, {
    readonly name: "swapExactAmountOut";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountOut";
    }, {
        readonly type: "uint128";
        readonly name: "maxAmountIn";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountIn";
    }];
}, {
    readonly name: "quoteSwapExactAmountIn";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountIn";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountOut";
    }];
}, {
    readonly name: "quoteSwapExactAmountOut";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountOut";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountIn";
    }];
}, {
    readonly name: "balanceOf";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "user";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "withdraw";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getOrder";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint128";
            readonly name: "orderId";
        }, {
            readonly type: "address";
            readonly name: "maker";
        }, {
            readonly type: "bytes32";
            readonly name: "bookKey";
        }, {
            readonly type: "bool";
            readonly name: "isBid";
        }, {
            readonly type: "int16";
            readonly name: "tick";
        }, {
            readonly type: "uint128";
            readonly name: "amount";
        }, {
            readonly type: "uint128";
            readonly name: "remaining";
        }, {
            readonly type: "uint128";
            readonly name: "prev";
        }, {
            readonly type: "uint128";
            readonly name: "next";
        }, {
            readonly type: "bool";
            readonly name: "isFlip";
        }, {
            readonly type: "int16";
            readonly name: "flipTick";
        }];
    }];
}, {
    readonly name: "getTickLevel";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "base";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "head";
    }, {
        readonly type: "uint128";
        readonly name: "tail";
    }, {
        readonly type: "uint128";
        readonly name: "totalLiquidity";
    }];
}, {
    readonly name: "pairKey";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenA";
    }, {
        readonly type: "address";
        readonly name: "tokenB";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "nextOrderId";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "books";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "pairKey";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "base";
        }, {
            readonly type: "address";
            readonly name: "quote";
        }, {
            readonly type: "int16";
            readonly name: "bestBidTick";
        }, {
            readonly type: "int16";
            readonly name: "bestAskTick";
        }];
    }];
}, {
    readonly name: "MIN_TICK";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "int16";
    }];
}, {
    readonly name: "MAX_TICK";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "int16";
    }];
}, {
    readonly name: "TICK_SPACING";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "int16";
    }];
}, {
    readonly name: "PRICE_SCALE";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint32";
    }];
}, {
    readonly name: "MIN_ORDER_AMOUNT";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "MIN_PRICE";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint32";
    }];
}, {
    readonly name: "MAX_PRICE";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint32";
    }];
}, {
    readonly name: "tickToPrice";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "int16";
        readonly name: "tick";
    }];
    readonly outputs: readonly [{
        readonly type: "uint32";
        readonly name: "price";
    }];
}, {
    readonly name: "priceToTick";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "uint32";
        readonly name: "price";
    }];
    readonly outputs: readonly [{
        readonly type: "int16";
        readonly name: "tick";
    }];
}, {
    readonly name: "PairCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "key";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "base";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "quote";
        readonly indexed: true;
    }];
}, {
    readonly name: "OrderPlaced";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "maker";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "bool";
        readonly name: "isFlipOrder";
    }, {
        readonly type: "int16";
        readonly name: "flipTick";
    }];
}, {
    readonly name: "OrderFilled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "maker";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "taker";
        readonly indexed: true;
    }, {
        readonly type: "uint128";
        readonly name: "amountFilled";
    }, {
        readonly type: "bool";
        readonly name: "partialFill";
    }];
}, {
    readonly name: "OrderFlipped";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "maker";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "int16";
        readonly name: "flipTick";
    }];
}, {
    readonly name: "OrderCancelled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PairDoesNotExist";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PairAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "OrderDoesNotExist";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "IdenticalTokens";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "TickOutOfBounds";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "int16";
        readonly name: "tick";
    }];
}, {
    readonly name: "InvalidTick";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidFlipTick";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientBalance";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientLiquidity";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientOutput";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "MaxInputExceeded";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "BelowMinimumOrderSize";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "amount";
    }];
}, {
    readonly name: "InvalidBaseToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "OrderNotStale";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const addressRegistry: readonly [{
    readonly name: "registerVirtualMaster";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "salt";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes4";
        readonly name: "masterId";
    }];
}, {
    readonly name: "getMaster";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes4";
        readonly name: "masterId";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "resolveRecipient";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
        readonly name: "effectiveRecipient";
    }];
}, {
    readonly name: "resolveVirtualAddress";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "virtualAddr";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
        readonly name: "master";
    }];
}, {
    readonly name: "isVirtualAddress";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "addr";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "decodeVirtualAddress";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "addr";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
        readonly name: "isVirtual";
    }, {
        readonly type: "bytes4";
        readonly name: "masterId";
    }, {
        readonly type: "bytes6";
        readonly name: "userTag";
    }];
}, {
    readonly name: "isImplicitlyApproved";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "addr";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "MasterRegistered";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes4";
        readonly name: "masterId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "masterAddress";
        readonly indexed: true;
    }];
}, {
    readonly name: "MasterIdCollision";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "master";
    }];
}, {
    readonly name: "InvalidMasterAddress";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ProofOfWorkFailed";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "VirtualAddressUnregistered";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const feeManager: readonly [{
    readonly name: "userTokens";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "validatorTokens";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "setUserToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setValidatorToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "distributeFees";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "collectedFees";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "UserTokenSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "user";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }];
}, {
    readonly name: "ValidatorTokenSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }];
}, {
    readonly name: "FeesDistributed";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientFeeTokenBalance";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "CannotChangeWithinBlock";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const feeAmm: readonly [{
    readonly name: "M";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "N";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "SCALE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "MIN_LIQUIDITY";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "getPoolId";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "getPool";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint128";
            readonly name: "reserveUserToken";
        }, {
            readonly type: "uint128";
            readonly name: "reserveValidatorToken";
        }];
    }];
}, {
    readonly name: "pools";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "poolId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint128";
            readonly name: "reserveUserToken";
        }, {
            readonly type: "uint128";
            readonly name: "reserveValidatorToken";
        }];
    }];
}, {
    readonly name: "mint";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "liquidity";
    }];
}, {
    readonly name: "burn";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "liquidity";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "amountUserToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }];
}, {
    readonly name: "totalSupply";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "poolId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "liquidityBalances";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "poolId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "rebalanceSwap";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountOut";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "amountIn";
    }];
}, {
    readonly name: "Mint";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "sender";
    }, {
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "userToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "liquidity";
    }];
}, {
    readonly name: "Burn";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "sender";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "userToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amountUserToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "liquidity";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
}, {
    readonly name: "RebalanceSwap";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "swapper";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amountIn";
    }, {
        readonly type: "uint256";
        readonly name: "amountOut";
    }];
}, {
    readonly name: "IdenticalAddresses";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientLiquidity";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientReserves";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidAmount";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "DivisionByZero";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSwapCalculation";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const accountKeychain: readonly [{
    readonly name: "authorizeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "uint64";
        readonly name: "expiry";
    }, {
        readonly type: "bool";
        readonly name: "enforceLimits";
    }, {
        readonly type: "tuple[]";
        readonly name: "limits";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "uint256";
            readonly name: "amount";
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "authorizeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "tuple";
        readonly name: "config";
        readonly components: readonly [{
            readonly type: "uint64";
            readonly name: "expiry";
        }, {
            readonly type: "bool";
            readonly name: "enforceLimits";
        }, {
            readonly type: "tuple[]";
            readonly name: "limits";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "token";
            }, {
                readonly type: "uint256";
                readonly name: "amount";
            }, {
                readonly type: "uint64";
                readonly name: "period";
            }];
        }, {
            readonly type: "bool";
            readonly name: "allowAnyCalls";
        }, {
            readonly type: "tuple[]";
            readonly name: "allowedCalls";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "target";
            }, {
                readonly type: "tuple[]";
                readonly name: "selectorRules";
                readonly components: readonly [{
                    readonly type: "bytes4";
                    readonly name: "selector";
                }, {
                    readonly type: "address[]";
                    readonly name: "recipients";
                }];
            }];
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "authorizeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "tuple";
        readonly name: "config";
        readonly components: readonly [{
            readonly type: "uint64";
            readonly name: "expiry";
        }, {
            readonly type: "bool";
            readonly name: "enforceLimits";
        }, {
            readonly type: "tuple[]";
            readonly name: "limits";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "token";
            }, {
                readonly type: "uint256";
                readonly name: "amount";
            }, {
                readonly type: "uint64";
                readonly name: "period";
            }];
        }, {
            readonly type: "bool";
            readonly name: "allowAnyCalls";
        }, {
            readonly type: "tuple[]";
            readonly name: "allowedCalls";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "target";
            }, {
                readonly type: "tuple[]";
                readonly name: "selectorRules";
                readonly components: readonly [{
                    readonly type: "bytes4";
                    readonly name: "selector";
                }, {
                    readonly type: "address[]";
                    readonly name: "recipients";
                }];
            }];
        }];
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burnKeyAuthorizationWitness";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "witness";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "revokeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "updateSpendingLimit";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint256";
        readonly name: "newLimit";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setAllowedCalls";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "tuple[]";
        readonly name: "scopes";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "target";
        }, {
            readonly type: "tuple[]";
            readonly name: "selectorRules";
            readonly components: readonly [{
                readonly type: "bytes4";
                readonly name: "selector";
            }, {
                readonly type: "address[]";
                readonly name: "recipients";
            }];
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "removeAllowedCalls";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "target";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getKey";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint8";
            readonly name: "signatureType";
        }, {
            readonly type: "address";
            readonly name: "keyId";
        }, {
            readonly type: "uint64";
            readonly name: "expiry";
        }, {
            readonly type: "bool";
            readonly name: "enforceLimits";
        }, {
            readonly type: "bool";
            readonly name: "isRevoked";
        }];
    }];
}, {
    readonly name: "getRemainingLimit";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "remaining";
    }];
}, {
    readonly name: "getRemainingLimitWithPeriod";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "remaining";
    }, {
        readonly type: "uint64";
        readonly name: "periodEnd";
    }];
}, {
    readonly name: "getAllowedCalls";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
        readonly name: "isScoped";
    }, {
        readonly type: "tuple[]";
        readonly name: "scopes";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "target";
        }, {
            readonly type: "tuple[]";
            readonly name: "selectorRules";
            readonly components: readonly [{
                readonly type: "bytes4";
                readonly name: "selector";
            }, {
                readonly type: "address[]";
                readonly name: "recipients";
            }];
        }];
    }];
}, {
    readonly name: "isKeyAuthorizationWitnessBurned";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "getTransactionKey";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "KeyAuthorized";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "uint64";
        readonly name: "expiry";
    }];
}, {
    readonly name: "KeyRevoked";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }];
}, {
    readonly name: "SpendingLimitUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "newLimit";
    }];
}, {
    readonly name: "AccessKeySpend";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "uint256";
        readonly name: "remainingLimit";
    }];
}, {
    readonly name: "KeyAuthorizationWitness";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
        readonly indexed: true;
    }];
}, {
    readonly name: "KeyAuthorizationWitnessBurned";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
        readonly indexed: true;
    }];
}, {
    readonly name: "UnauthorizedCaller";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyExpired";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "SpendingLimitExceeded";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSpendingLimit";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignatureType";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ZeroPublicKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiryInPast";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyAlreadyRevoked";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "SignatureTypeMismatch";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "uint8";
        readonly name: "expected";
    }, {
        readonly type: "uint8";
        readonly name: "actual";
    }];
}, {
    readonly name: "CallNotAllowed";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidCallScope";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidKeyAuthorizationWitness";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyAuthorizationWitnessAlreadyBurned";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "LegacyAuthorizeKeySelectorChanged";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "bytes4";
        readonly name: "newSelector";
    }];
}];
export declare const nonce: readonly [{
    readonly name: "getNonce";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "uint256";
        readonly name: "nonceKey";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
        readonly name: "nonce";
    }];
}, {
    readonly name: "NonceIncremented";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "nonceKey";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "newNonce";
    }];
}, {
    readonly name: "ProtocolNonceNotSupported";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidNonceKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NonceOverflow";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiringNonceReplay";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiringNonceSetFull";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidExpiringNonceExpiry";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const tip20Factory: readonly [{
    readonly name: "createToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "name";
    }, {
        readonly type: "string";
        readonly name: "symbol";
    }, {
        readonly type: "string";
        readonly name: "currency";
    }, {
        readonly type: "address";
        readonly name: "quoteToken";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "createToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "name";
    }, {
        readonly type: "string";
        readonly name: "symbol";
    }, {
        readonly type: "string";
        readonly name: "currency";
    }, {
        readonly type: "address";
        readonly name: "quoteToken";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "string";
        readonly name: "logoURI";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "isTIP20";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "getTokenAddress";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "sender";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "TokenCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "string";
        readonly name: "name";
    }, {
        readonly type: "string";
        readonly name: "symbol";
    }, {
        readonly type: "string";
        readonly name: "currency";
    }, {
        readonly type: "address";
        readonly name: "quoteToken";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }];
}, {
    readonly name: "AddressReserved";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AddressNotReserved";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidQuoteToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "TokenAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
}];
export declare const tip403Registry: readonly [{
    readonly name: "policyIdCounter";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "policyExists";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "policyData";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint8";
        readonly name: "policyType";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }];
}, {
    readonly name: "isAuthorized";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "isAuthorizedSender";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "isAuthorizedRecipient";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "isAuthorizedMintRecipient";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "compoundPolicyData";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
        readonly name: "senderPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "recipientPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "mintRecipientPolicyId";
    }];
}, {
    readonly name: "createPolicy";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "uint8";
        readonly name: "policyType";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "createPolicyWithAccounts";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "uint8";
        readonly name: "policyType";
    }, {
        readonly type: "address[]";
        readonly name: "accounts";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "setPolicyAdmin";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "modifyPolicyWhitelist";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bool";
        readonly name: "allowed";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "modifyPolicyBlacklist";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bool";
        readonly name: "restricted";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "createCompoundPolicy";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "senderPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "recipientPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "mintRecipientPolicyId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "PolicyAdminUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "admin";
        readonly indexed: true;
    }];
}, {
    readonly name: "PolicyCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "uint8";
        readonly name: "policyType";
    }];
}, {
    readonly name: "WhitelistUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "allowed";
    }];
}, {
    readonly name: "BlacklistUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "restricted";
    }];
}, {
    readonly name: "CompoundPolicyCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "creator";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "senderPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "recipientPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "mintRecipientPolicyId";
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PolicyNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PolicyNotSimple";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPolicyType";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "IncompatiblePolicyType";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "VirtualAddressNotAllowed";
    readonly type: "error";
    readonly inputs: readonly [];
}];
export declare const validatorConfig: readonly [{
    readonly name: "getValidators";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "tuple[]";
        readonly name: "validators";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "bool";
            readonly name: "active";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "inboundAddress";
        }, {
            readonly type: "string";
            readonly name: "outboundAddress";
        }];
    }];
}, {
    readonly name: "addValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newValidatorAddress";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "bool";
        readonly name: "active";
    }, {
        readonly type: "string";
        readonly name: "inboundAddress";
    }, {
        readonly type: "string";
        readonly name: "outboundAddress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "updateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newValidatorAddress";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "inboundAddress";
    }, {
        readonly type: "string";
        readonly name: "outboundAddress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "changeValidatorStatus";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }, {
        readonly type: "bool";
        readonly name: "active";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "changeValidatorStatusByIndex";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
    }, {
        readonly type: "bool";
        readonly name: "active";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "owner";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "changeOwner";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newOwner";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getNextFullDkgCeremony";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "setNextFullDkgCeremony";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "epoch";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "validatorsArray";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "index";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "validators";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "bool";
            readonly name: "active";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "inboundAddress";
        }, {
            readonly type: "string";
            readonly name: "outboundAddress";
        }];
    }];
}, {
    readonly name: "validatorCount";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPublicKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotHostPort";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "field";
    }, {
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}, {
    readonly name: "NotIpPort";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "field";
    }, {
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}];
export declare const abis: readonly [{
    readonly name: "CLOSE_GRACE_PERIOD";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "VOUCHER_TYPEHASH";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "open";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "payee";
    }, {
        readonly type: "address";
        readonly name: "operator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint96";
        readonly name: "deposit";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "address";
        readonly name: "authorizedSigner";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
    }];
}, {
    readonly name: "settle";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "topUp";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }, {
        readonly type: "uint96";
        readonly name: "additionalDeposit";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "close";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }, {
        readonly type: "uint96";
        readonly name: "captureAmount";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "requestClose";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "withdraw";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getChannel";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "tuple";
        readonly name: "descriptor";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "payer";
        }, {
            readonly type: "address";
            readonly name: "payee";
        }, {
            readonly type: "address";
            readonly name: "operator";
        }, {
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "bytes32";
            readonly name: "salt";
        }, {
            readonly type: "address";
            readonly name: "authorizedSigner";
        }, {
            readonly type: "bytes32";
            readonly name: "expiringNonceHash";
        }];
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "tuple";
            readonly name: "descriptor";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "payer";
            }, {
                readonly type: "address";
                readonly name: "payee";
            }, {
                readonly type: "address";
                readonly name: "operator";
            }, {
                readonly type: "address";
                readonly name: "token";
            }, {
                readonly type: "bytes32";
                readonly name: "salt";
            }, {
                readonly type: "address";
                readonly name: "authorizedSigner";
            }, {
                readonly type: "bytes32";
                readonly name: "expiringNonceHash";
            }];
        }, {
            readonly type: "tuple";
            readonly name: "state";
            readonly components: readonly [{
                readonly type: "uint96";
                readonly name: "settled";
            }, {
                readonly type: "uint96";
                readonly name: "deposit";
            }, {
                readonly type: "uint32";
                readonly name: "closeRequestedAt";
            }];
        }];
    }];
}, {
    readonly name: "getChannelState";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint96";
            readonly name: "settled";
        }, {
            readonly type: "uint96";
            readonly name: "deposit";
        }, {
            readonly type: "uint32";
            readonly name: "closeRequestedAt";
        }];
    }];
}, {
    readonly name: "getChannelStatesBatch";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32[]";
        readonly name: "channelIds";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple[]";
        readonly components: readonly [{
            readonly type: "uint96";
            readonly name: "settled";
        }, {
            readonly type: "uint96";
            readonly name: "deposit";
        }, {
            readonly type: "uint32";
            readonly name: "closeRequestedAt";
        }];
    }];
}, {
    readonly name: "computeChannelId";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "payer";
    }, {
        readonly type: "address";
        readonly name: "payee";
    }, {
        readonly type: "address";
        readonly name: "operator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "address";
        readonly name: "authorizedSigner";
    }, {
        readonly type: "bytes32";
        readonly name: "expiringNonceHash";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "getVoucherDigest";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "domainSeparator";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "ChannelOpened";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "operator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "address";
        readonly name: "authorizedSigner";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "bytes32";
        readonly name: "expiringNonceHash";
    }, {
        readonly type: "uint96";
        readonly name: "deposit";
    }];
}, {
    readonly name: "Settled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint96";
        readonly name: "cumulativeAmount";
    }, {
        readonly type: "uint96";
        readonly name: "deltaPaid";
    }, {
        readonly type: "uint96";
        readonly name: "newSettled";
    }];
}, {
    readonly name: "TopUp";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint96";
        readonly name: "additionalDeposit";
    }, {
        readonly type: "uint96";
        readonly name: "newDeposit";
    }];
}, {
    readonly name: "CloseRequested";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "closeGraceEnd";
    }];
}, {
    readonly name: "ChannelClosed";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }, {
        readonly type: "uint96";
        readonly name: "settledToPayee";
    }, {
        readonly type: "uint96";
        readonly name: "refundedToPayer";
    }];
}, {
    readonly name: "CloseRequestCancelled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "channelId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payer";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "payee";
        readonly indexed: true;
    }];
}, {
    readonly name: "ChannelAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ChannelNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotPayer";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotPayeeOrOperator";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPayee";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ZeroDeposit";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiringNonceHashNotSet";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AmountExceedsDeposit";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AmountNotIncreasing";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "CaptureAmountInvalid";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "CloseNotReady";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "DepositOverflow";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "name";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "symbol";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "decimals";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint8";
    }];
}, {
    readonly name: "totalSupply";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "quoteToken";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "nextQuoteToken";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "balanceOf";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "transfer";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "approve";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "spender";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "allowance";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
    }, {
        readonly type: "address";
        readonly name: "spender";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "transferFrom";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
    }, {
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "mint";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burn";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "currency";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "supplyCap";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "paused";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "transferPolicyId";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "logoURI";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "string";
    }];
}, {
    readonly name: "setLogoURI";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "newLogoURI";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burnBlocked";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "mintWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burnWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferFromWithMemo";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
    }, {
        readonly type: "address";
        readonly name: "to";
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "changeTransferPolicyId";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "newPolicyId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setSupplyCap";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "newSupplyCap";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "pause";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "unpause";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "setNextQuoteToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newQuoteToken";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "completeQuoteTokenUpdate";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "PAUSE_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "UNPAUSE_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "ISSUER_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "BURN_BLOCKED_ROLE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "permit";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
    }, {
        readonly type: "address";
        readonly name: "spender";
    }, {
        readonly type: "uint256";
        readonly name: "value";
    }, {
        readonly type: "uint256";
        readonly name: "deadline";
    }, {
        readonly type: "uint8";
        readonly name: "v";
    }, {
        readonly type: "bytes32";
        readonly name: "r";
    }, {
        readonly type: "bytes32";
        readonly name: "s";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "nonces";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "DOMAIN_SEPARATOR";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "distributeReward";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setRewardRecipient";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "recipient";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "claimRewards";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "optedInSupply";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "globalRewardPerToken";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "userRewardInfo";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "rewardRecipient";
        }, {
            readonly type: "uint256";
            readonly name: "rewardPerToken";
        }, {
            readonly type: "uint256";
            readonly name: "rewardBalance";
        }];
    }];
}, {
    readonly name: "getPendingRewards";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "Transfer";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "Approval";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "owner";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "spender";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "Mint";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "Burn";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "BurnBlocked";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "TransferWithMemo";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "from";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "bytes32";
        readonly name: "memo";
        readonly indexed: true;
    }];
}, {
    readonly name: "TransferPolicyUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "newPolicyId";
        readonly indexed: true;
    }];
}, {
    readonly name: "SupplyCapUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "newSupplyCap";
        readonly indexed: true;
    }];
}, {
    readonly name: "PauseStateUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "isPaused";
    }];
}, {
    readonly name: "NextQuoteTokenSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "nextQuoteToken";
        readonly indexed: true;
    }];
}, {
    readonly name: "QuoteTokenUpdate";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "newQuoteToken";
        readonly indexed: true;
    }];
}, {
    readonly name: "RewardDistributed";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "funder";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "RewardRecipientSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "holder";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "recipient";
        readonly indexed: true;
    }];
}, {
    readonly name: "LogoURIUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "string";
        readonly name: "newLogoURI";
    }];
}, {
    readonly name: "InsufficientBalance";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "available";
    }, {
        readonly type: "uint256";
        readonly name: "required";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
}, {
    readonly name: "InsufficientAllowance";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "SupplyCapExceeded";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSupplyCap";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPayload";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PolicyForbids";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidRecipient";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ContractPaused";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidCurrency";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidQuoteToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidAmount";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NoOptedInSupply";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ProtectedAddress";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "Uninitialized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidTransferPolicyId";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PermitExpired";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "LogoURITooLong";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidLogoURI";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "hasRole";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bytes32";
        readonly name: "role";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "getRoleAdmin";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "grantRole";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }, {
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "revokeRole";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }, {
        readonly type: "address";
        readonly name: "account";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "renounceRole";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setRoleAdmin";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
    }, {
        readonly type: "bytes32";
        readonly name: "adminRole";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "RoleMembershipUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "sender";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "hasRole";
    }];
}, {
    readonly name: "RoleAdminUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "role";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "newAdminRole";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "sender";
        readonly indexed: true;
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "getActiveValidators";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "tuple[]";
        readonly name: "validators";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "getInitializedAtHeight";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "owner";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "validatorCount";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "validatorByIndex";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "validatorByAddress";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validatorAddress";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "validatorByPublicKey";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "publicKey";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "ingress";
        }, {
            readonly type: "string";
            readonly name: "egress";
        }, {
            readonly type: "address";
            readonly name: "feeRecipient";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "uint64";
            readonly name: "addedAtHeight";
        }, {
            readonly type: "uint64";
            readonly name: "deactivatedAtHeight";
        }];
    }];
}, {
    readonly name: "getNextNetworkIdentityRotationEpoch";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "isInitialized";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "addValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validatorAddress";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
    }];
}, {
    readonly name: "deactivateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "rotateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setFeeRecipient";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setIpAddresses";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferValidatorOwnership";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }, {
        readonly type: "address";
        readonly name: "newAddress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "transferOwnership";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newOwner";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setNetworkIdentityRotationEpoch";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "epoch";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "migrateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "idx";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "initializeIfMigrated";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
}, {
    readonly name: "ValidatorAdded";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }];
}, {
    readonly name: "ValidatorDeactivated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }];
}, {
    readonly name: "ValidatorRotated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "deactivatedIndex";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "oldPublicKey";
    }, {
        readonly type: "bytes32";
        readonly name: "newPublicKey";
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "FeeRecipientUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "feeRecipient";
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "IpAddressesUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "string";
        readonly name: "ingress";
    }, {
        readonly type: "string";
        readonly name: "egress";
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "ValidatorOwnershipTransferred";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "oldAddress";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "newAddress";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "caller";
    }];
}, {
    readonly name: "OwnershipTransferred";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "oldOwner";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "newOwner";
        readonly indexed: true;
    }];
}, {
    readonly name: "ValidatorMigrated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }];
}, {
    readonly name: "NetworkIdentityRotationEpochSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "previousEpoch";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "nextEpoch";
        readonly indexed: true;
    }];
}, {
    readonly name: "Initialized";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "height";
    }];
}, {
    readonly name: "SkippedValidatorMigration";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorAddress";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }];
}, {
    readonly name: "AlreadyInitialized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "IngressAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "ingress";
    }];
}, {
    readonly name: "EmptyV1ValidatorSet";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidMigrationIndex";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidOwner";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPublicKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignatureFormat";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidValidatorAddress";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "MigrationNotComplete";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotInitialized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotIp";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}, {
    readonly name: "NotIpPort";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}, {
    readonly name: "PublicKeyAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AddressAlreadyHasValidator";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorAlreadyDeactivated";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "recover";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "hash";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
        readonly name: "signer";
    }];
}, {
    readonly name: "verify";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "signer";
    }, {
        readonly type: "bytes32";
        readonly name: "hash";
    }, {
        readonly type: "bytes";
        readonly name: "signature";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "InvalidFormat";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignature";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "createPair";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "base";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
        readonly name: "key";
    }];
}, {
    readonly name: "place";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
}, {
    readonly name: "placeFlip";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "int16";
        readonly name: "flipTick";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
}, {
    readonly name: "cancel";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "cancelStaleOrder";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "swapExactAmountIn";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountIn";
    }, {
        readonly type: "uint128";
        readonly name: "minAmountOut";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountOut";
    }];
}, {
    readonly name: "swapExactAmountOut";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountOut";
    }, {
        readonly type: "uint128";
        readonly name: "maxAmountIn";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountIn";
    }];
}, {
    readonly name: "quoteSwapExactAmountIn";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountIn";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountOut";
    }];
}, {
    readonly name: "quoteSwapExactAmountOut";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenIn";
    }, {
        readonly type: "address";
        readonly name: "tokenOut";
    }, {
        readonly type: "uint128";
        readonly name: "amountOut";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "amountIn";
    }];
}, {
    readonly name: "balanceOf";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "user";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "withdraw";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getOrder";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint128";
            readonly name: "orderId";
        }, {
            readonly type: "address";
            readonly name: "maker";
        }, {
            readonly type: "bytes32";
            readonly name: "bookKey";
        }, {
            readonly type: "bool";
            readonly name: "isBid";
        }, {
            readonly type: "int16";
            readonly name: "tick";
        }, {
            readonly type: "uint128";
            readonly name: "amount";
        }, {
            readonly type: "uint128";
            readonly name: "remaining";
        }, {
            readonly type: "uint128";
            readonly name: "prev";
        }, {
            readonly type: "uint128";
            readonly name: "next";
        }, {
            readonly type: "bool";
            readonly name: "isFlip";
        }, {
            readonly type: "int16";
            readonly name: "flipTick";
        }];
    }];
}, {
    readonly name: "getTickLevel";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "base";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }];
    readonly outputs: readonly [{
        readonly type: "uint128";
        readonly name: "head";
    }, {
        readonly type: "uint128";
        readonly name: "tail";
    }, {
        readonly type: "uint128";
        readonly name: "totalLiquidity";
    }];
}, {
    readonly name: "pairKey";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "tokenA";
    }, {
        readonly type: "address";
        readonly name: "tokenB";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "nextOrderId";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "books";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "pairKey";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "base";
        }, {
            readonly type: "address";
            readonly name: "quote";
        }, {
            readonly type: "int16";
            readonly name: "bestBidTick";
        }, {
            readonly type: "int16";
            readonly name: "bestAskTick";
        }];
    }];
}, {
    readonly name: "MIN_TICK";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "int16";
    }];
}, {
    readonly name: "MAX_TICK";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "int16";
    }];
}, {
    readonly name: "TICK_SPACING";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "int16";
    }];
}, {
    readonly name: "PRICE_SCALE";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint32";
    }];
}, {
    readonly name: "MIN_ORDER_AMOUNT";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint128";
    }];
}, {
    readonly name: "MIN_PRICE";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint32";
    }];
}, {
    readonly name: "MAX_PRICE";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint32";
    }];
}, {
    readonly name: "tickToPrice";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "int16";
        readonly name: "tick";
    }];
    readonly outputs: readonly [{
        readonly type: "uint32";
        readonly name: "price";
    }];
}, {
    readonly name: "priceToTick";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "uint32";
        readonly name: "price";
    }];
    readonly outputs: readonly [{
        readonly type: "int16";
        readonly name: "tick";
    }];
}, {
    readonly name: "PairCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "key";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "base";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "quote";
        readonly indexed: true;
    }];
}, {
    readonly name: "OrderPlaced";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "maker";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "bool";
        readonly name: "isFlipOrder";
    }, {
        readonly type: "int16";
        readonly name: "flipTick";
    }];
}, {
    readonly name: "OrderFilled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "maker";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "taker";
        readonly indexed: true;
    }, {
        readonly type: "uint128";
        readonly name: "amountFilled";
    }, {
        readonly type: "bool";
        readonly name: "partialFill";
    }];
}, {
    readonly name: "OrderFlipped";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "maker";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint128";
        readonly name: "amount";
    }, {
        readonly type: "bool";
        readonly name: "isBid";
    }, {
        readonly type: "int16";
        readonly name: "tick";
    }, {
        readonly type: "int16";
        readonly name: "flipTick";
    }];
}, {
    readonly name: "OrderCancelled";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "orderId";
        readonly indexed: true;
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PairDoesNotExist";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PairAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "OrderDoesNotExist";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "IdenticalTokens";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "TickOutOfBounds";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "int16";
        readonly name: "tick";
    }];
}, {
    readonly name: "InvalidTick";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidFlipTick";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientBalance";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientLiquidity";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientOutput";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "MaxInputExceeded";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "BelowMinimumOrderSize";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "uint128";
        readonly name: "amount";
    }];
}, {
    readonly name: "InvalidBaseToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "OrderNotStale";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "registerVirtualMaster";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "salt";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes4";
        readonly name: "masterId";
    }];
}, {
    readonly name: "getMaster";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes4";
        readonly name: "masterId";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "resolveRecipient";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
        readonly name: "effectiveRecipient";
    }];
}, {
    readonly name: "resolveVirtualAddress";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "virtualAddr";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
        readonly name: "master";
    }];
}, {
    readonly name: "isVirtualAddress";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "addr";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "decodeVirtualAddress";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "addr";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
        readonly name: "isVirtual";
    }, {
        readonly type: "bytes4";
        readonly name: "masterId";
    }, {
        readonly type: "bytes6";
        readonly name: "userTag";
    }];
}, {
    readonly name: "isImplicitlyApproved";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "addr";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "MasterRegistered";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "bytes4";
        readonly name: "masterId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "masterAddress";
        readonly indexed: true;
    }];
}, {
    readonly name: "MasterIdCollision";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "master";
    }];
}, {
    readonly name: "InvalidMasterAddress";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ProofOfWorkFailed";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "VirtualAddressUnregistered";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "userTokens";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "validatorTokens";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "setUserToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setValidatorToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "distributeFees";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "collectedFees";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "UserTokenSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "user";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }];
}, {
    readonly name: "ValidatorTokenSet";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }];
}, {
    readonly name: "FeesDistributed";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientFeeTokenBalance";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "CannotChangeWithinBlock";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "M";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "N";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "SCALE";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "MIN_LIQUIDITY";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "getPoolId";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }];
    readonly outputs: readonly [{
        readonly type: "bytes32";
    }];
}, {
    readonly name: "getPool";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint128";
            readonly name: "reserveUserToken";
        }, {
            readonly type: "uint128";
            readonly name: "reserveValidatorToken";
        }];
    }];
}, {
    readonly name: "pools";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "poolId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint128";
            readonly name: "reserveUserToken";
        }, {
            readonly type: "uint128";
            readonly name: "reserveValidatorToken";
        }];
    }];
}, {
    readonly name: "mint";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "liquidity";
    }];
}, {
    readonly name: "burn";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "liquidity";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "amountUserToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }];
}, {
    readonly name: "totalSupply";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "poolId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "liquidityBalances";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "poolId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
    }];
}, {
    readonly name: "rebalanceSwap";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountOut";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "amountIn";
    }];
}, {
    readonly name: "Mint";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "sender";
    }, {
        readonly type: "address";
        readonly name: "to";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "userToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "liquidity";
    }];
}, {
    readonly name: "Burn";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "sender";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "userToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amountUserToken";
    }, {
        readonly type: "uint256";
        readonly name: "amountValidatorToken";
    }, {
        readonly type: "uint256";
        readonly name: "liquidity";
    }, {
        readonly type: "address";
        readonly name: "to";
    }];
}, {
    readonly name: "RebalanceSwap";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "userToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "validatorToken";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "swapper";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amountIn";
    }, {
        readonly type: "uint256";
        readonly name: "amountOut";
    }];
}, {
    readonly name: "IdenticalAddresses";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientLiquidity";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InsufficientReserves";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidAmount";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "DivisionByZero";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSwapCalculation";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "authorizeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "uint64";
        readonly name: "expiry";
    }, {
        readonly type: "bool";
        readonly name: "enforceLimits";
    }, {
        readonly type: "tuple[]";
        readonly name: "limits";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "token";
        }, {
            readonly type: "uint256";
            readonly name: "amount";
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "authorizeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "tuple";
        readonly name: "config";
        readonly components: readonly [{
            readonly type: "uint64";
            readonly name: "expiry";
        }, {
            readonly type: "bool";
            readonly name: "enforceLimits";
        }, {
            readonly type: "tuple[]";
            readonly name: "limits";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "token";
            }, {
                readonly type: "uint256";
                readonly name: "amount";
            }, {
                readonly type: "uint64";
                readonly name: "period";
            }];
        }, {
            readonly type: "bool";
            readonly name: "allowAnyCalls";
        }, {
            readonly type: "tuple[]";
            readonly name: "allowedCalls";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "target";
            }, {
                readonly type: "tuple[]";
                readonly name: "selectorRules";
                readonly components: readonly [{
                    readonly type: "bytes4";
                    readonly name: "selector";
                }, {
                    readonly type: "address[]";
                    readonly name: "recipients";
                }];
            }];
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "authorizeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "tuple";
        readonly name: "config";
        readonly components: readonly [{
            readonly type: "uint64";
            readonly name: "expiry";
        }, {
            readonly type: "bool";
            readonly name: "enforceLimits";
        }, {
            readonly type: "tuple[]";
            readonly name: "limits";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "token";
            }, {
                readonly type: "uint256";
                readonly name: "amount";
            }, {
                readonly type: "uint64";
                readonly name: "period";
            }];
        }, {
            readonly type: "bool";
            readonly name: "allowAnyCalls";
        }, {
            readonly type: "tuple[]";
            readonly name: "allowedCalls";
            readonly components: readonly [{
                readonly type: "address";
                readonly name: "target";
            }, {
                readonly type: "tuple[]";
                readonly name: "selectorRules";
                readonly components: readonly [{
                    readonly type: "bytes4";
                    readonly name: "selector";
                }, {
                    readonly type: "address[]";
                    readonly name: "recipients";
                }];
            }];
        }];
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "burnKeyAuthorizationWitness";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "bytes32";
        readonly name: "witness";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "revokeKey";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "updateSpendingLimit";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "token";
    }, {
        readonly type: "uint256";
        readonly name: "newLimit";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "setAllowedCalls";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "tuple[]";
        readonly name: "scopes";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "target";
        }, {
            readonly type: "tuple[]";
            readonly name: "selectorRules";
            readonly components: readonly [{
                readonly type: "bytes4";
                readonly name: "selector";
            }, {
                readonly type: "address[]";
                readonly name: "recipients";
            }];
        }];
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "removeAllowedCalls";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "target";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getKey";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "uint8";
            readonly name: "signatureType";
        }, {
            readonly type: "address";
            readonly name: "keyId";
        }, {
            readonly type: "uint64";
            readonly name: "expiry";
        }, {
            readonly type: "bool";
            readonly name: "enforceLimits";
        }, {
            readonly type: "bool";
            readonly name: "isRevoked";
        }];
    }];
}, {
    readonly name: "getRemainingLimit";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "remaining";
    }];
}, {
    readonly name: "getRemainingLimitWithPeriod";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }, {
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "uint256";
        readonly name: "remaining";
    }, {
        readonly type: "uint64";
        readonly name: "periodEnd";
    }];
}, {
    readonly name: "getAllowedCalls";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "address";
        readonly name: "keyId";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
        readonly name: "isScoped";
    }, {
        readonly type: "tuple[]";
        readonly name: "scopes";
        readonly components: readonly [{
            readonly type: "address";
            readonly name: "target";
        }, {
            readonly type: "tuple[]";
            readonly name: "selectorRules";
            readonly components: readonly [{
                readonly type: "bytes4";
                readonly name: "selector";
            }, {
                readonly type: "address[]";
                readonly name: "recipients";
            }];
        }];
    }];
}, {
    readonly name: "isKeyAuthorizationWitnessBurned";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "getTransactionKey";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "KeyAuthorized";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }, {
        readonly type: "uint8";
        readonly name: "signatureType";
    }, {
        readonly type: "uint64";
        readonly name: "expiry";
    }];
}, {
    readonly name: "KeyRevoked";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }];
}, {
    readonly name: "SpendingLimitUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "newLimit";
    }];
}, {
    readonly name: "AccessKeySpend";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "publicKey";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "amount";
    }, {
        readonly type: "uint256";
        readonly name: "remainingLimit";
    }];
}, {
    readonly name: "KeyAuthorizationWitness";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
        readonly indexed: true;
    }];
}, {
    readonly name: "KeyAuthorizationWitnessBurned";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bytes32";
        readonly name: "witness";
        readonly indexed: true;
    }];
}, {
    readonly name: "UnauthorizedCaller";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyExpired";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "SpendingLimitExceeded";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSpendingLimit";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidSignatureType";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ZeroPublicKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiryInPast";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyAlreadyRevoked";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "SignatureTypeMismatch";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "uint8";
        readonly name: "expected";
    }, {
        readonly type: "uint8";
        readonly name: "actual";
    }];
}, {
    readonly name: "CallNotAllowed";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidCallScope";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidKeyAuthorizationWitness";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "KeyAuthorizationWitnessAlreadyBurned";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "LegacyAuthorizeKeySelectorChanged";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "bytes4";
        readonly name: "newSelector";
    }];
}, {
    readonly name: "getNonce";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "uint256";
        readonly name: "nonceKey";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
        readonly name: "nonce";
    }];
}, {
    readonly name: "NonceIncremented";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "uint256";
        readonly name: "nonceKey";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "newNonce";
    }];
}, {
    readonly name: "ProtocolNonceNotSupported";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidNonceKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NonceOverflow";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiringNonceReplay";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ExpiringNonceSetFull";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidExpiringNonceExpiry";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "createToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "name";
    }, {
        readonly type: "string";
        readonly name: "symbol";
    }, {
        readonly type: "string";
        readonly name: "currency";
    }, {
        readonly type: "address";
        readonly name: "quoteToken";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "createToken";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "name";
    }, {
        readonly type: "string";
        readonly name: "symbol";
    }, {
        readonly type: "string";
        readonly name: "currency";
    }, {
        readonly type: "address";
        readonly name: "quoteToken";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }, {
        readonly type: "string";
        readonly name: "logoURI";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "isTIP20";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "getTokenAddress";
    readonly type: "function";
    readonly stateMutability: "pure";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "sender";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "TokenCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
        readonly indexed: true;
    }, {
        readonly type: "string";
        readonly name: "name";
    }, {
        readonly type: "string";
        readonly name: "symbol";
    }, {
        readonly type: "string";
        readonly name: "currency";
    }, {
        readonly type: "address";
        readonly name: "quoteToken";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "bytes32";
        readonly name: "salt";
    }];
}, {
    readonly name: "AddressReserved";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "AddressNotReserved";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidQuoteToken";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "TokenAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "token";
    }];
}, {
    readonly name: "policyIdCounter";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "policyExists";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "policyData";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint8";
        readonly name: "policyType";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }];
}, {
    readonly name: "isAuthorized";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "isAuthorizedSender";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "isAuthorizedRecipient";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "isAuthorizedMintRecipient";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "user";
    }];
    readonly outputs: readonly [{
        readonly type: "bool";
    }];
}, {
    readonly name: "compoundPolicyData";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
        readonly name: "senderPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "recipientPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "mintRecipientPolicyId";
    }];
}, {
    readonly name: "createPolicy";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "uint8";
        readonly name: "policyType";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "createPolicyWithAccounts";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "admin";
    }, {
        readonly type: "uint8";
        readonly name: "policyType";
    }, {
        readonly type: "address[]";
        readonly name: "accounts";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "setPolicyAdmin";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "admin";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "modifyPolicyWhitelist";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bool";
        readonly name: "allowed";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "modifyPolicyBlacklist";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
    }, {
        readonly type: "address";
        readonly name: "account";
    }, {
        readonly type: "bool";
        readonly name: "restricted";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "createCompoundPolicy";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "senderPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "recipientPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "mintRecipientPolicyId";
    }];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "PolicyAdminUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "admin";
        readonly indexed: true;
    }];
}, {
    readonly name: "PolicyCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "uint8";
        readonly name: "policyType";
    }];
}, {
    readonly name: "WhitelistUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "allowed";
    }];
}, {
    readonly name: "BlacklistUpdated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "updater";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "account";
        readonly indexed: true;
    }, {
        readonly type: "bool";
        readonly name: "restricted";
    }];
}, {
    readonly name: "CompoundPolicyCreated";
    readonly type: "event";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "policyId";
        readonly indexed: true;
    }, {
        readonly type: "address";
        readonly name: "creator";
        readonly indexed: true;
    }, {
        readonly type: "uint64";
        readonly name: "senderPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "recipientPolicyId";
    }, {
        readonly type: "uint64";
        readonly name: "mintRecipientPolicyId";
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PolicyNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "PolicyNotSimple";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPolicyType";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "IncompatiblePolicyType";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "VirtualAddressNotAllowed";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "getValidators";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "tuple[]";
        readonly name: "validators";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "bool";
            readonly name: "active";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "inboundAddress";
        }, {
            readonly type: "string";
            readonly name: "outboundAddress";
        }];
    }];
}, {
    readonly name: "addValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newValidatorAddress";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "bool";
        readonly name: "active";
    }, {
        readonly type: "string";
        readonly name: "inboundAddress";
    }, {
        readonly type: "string";
        readonly name: "outboundAddress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "updateValidator";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newValidatorAddress";
    }, {
        readonly type: "bytes32";
        readonly name: "publicKey";
    }, {
        readonly type: "string";
        readonly name: "inboundAddress";
    }, {
        readonly type: "string";
        readonly name: "outboundAddress";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "changeValidatorStatus";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }, {
        readonly type: "bool";
        readonly name: "active";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "changeValidatorStatusByIndex";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "index";
    }, {
        readonly type: "bool";
        readonly name: "active";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "owner";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "changeOwner";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "newOwner";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "getNextFullDkgCeremony";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "setNextFullDkgCeremony";
    readonly type: "function";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly type: "uint64";
        readonly name: "epoch";
    }];
    readonly outputs: readonly [];
}, {
    readonly name: "validatorsArray";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "uint256";
        readonly name: "index";
    }];
    readonly outputs: readonly [{
        readonly type: "address";
    }];
}, {
    readonly name: "validators";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly type: "address";
        readonly name: "validator";
    }];
    readonly outputs: readonly [{
        readonly type: "tuple";
        readonly components: readonly [{
            readonly type: "bytes32";
            readonly name: "publicKey";
        }, {
            readonly type: "bool";
            readonly name: "active";
        }, {
            readonly type: "uint64";
            readonly name: "index";
        }, {
            readonly type: "address";
            readonly name: "validatorAddress";
        }, {
            readonly type: "string";
            readonly name: "inboundAddress";
        }, {
            readonly type: "string";
            readonly name: "outboundAddress";
        }];
    }];
}, {
    readonly name: "validatorCount";
    readonly type: "function";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly type: "uint64";
    }];
}, {
    readonly name: "Unauthorized";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorAlreadyExists";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "ValidatorNotFound";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "InvalidPublicKey";
    readonly type: "error";
    readonly inputs: readonly [];
}, {
    readonly name: "NotHostPort";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "field";
    }, {
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}, {
    readonly name: "NotIpPort";
    readonly type: "error";
    readonly inputs: readonly [{
        readonly type: "string";
        readonly name: "field";
    }, {
        readonly type: "string";
        readonly name: "input";
    }, {
        readonly type: "string";
        readonly name: "backtrace";
    }];
}];
//# sourceMappingURL=Abis.d.ts.map