declare const AccountantAbi: readonly [{
    readonly type: "constructor";
    readonly inputs: readonly [{
        readonly name: "_owner";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_vault";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "payoutAddress";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "startingExchangeRate";
        readonly type: "uint96";
        readonly internalType: "uint96";
    }, {
        readonly name: "_base";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "allowedExchangeRateChangeUpper";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }, {
        readonly name: "allowedExchangeRateChangeLower";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }, {
        readonly name: "minimumUpdateDelayInSeconds";
        readonly type: "uint32";
        readonly internalType: "uint32";
    }, {
        readonly name: "managementFee";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "accountantState";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "payoutAddress";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "feesOwedInBase";
        readonly type: "uint128";
        readonly internalType: "uint128";
    }, {
        readonly name: "totalSharesLastUpdate";
        readonly type: "uint128";
        readonly internalType: "uint128";
    }, {
        readonly name: "exchangeRate";
        readonly type: "uint96";
        readonly internalType: "uint96";
    }, {
        readonly name: "allowedExchangeRateChangeUpper";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }, {
        readonly name: "allowedExchangeRateChangeLower";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }, {
        readonly name: "lastUpdateTimestamp";
        readonly type: "uint64";
        readonly internalType: "uint64";
    }, {
        readonly name: "isPaused";
        readonly type: "bool";
        readonly internalType: "bool";
    }, {
        readonly name: "minimumUpdateDelayInSeconds";
        readonly type: "uint32";
        readonly internalType: "uint32";
    }, {
        readonly name: "managementFee";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "authority";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "contract Authority";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "base";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "contract ERC20";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "claimFees";
    readonly inputs: readonly [{
        readonly name: "feeAsset";
        readonly type: "address";
        readonly internalType: "contract ERC20";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "decimals";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint8";
        readonly internalType: "uint8";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getRate";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "rate";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getRateInQuote";
    readonly inputs: readonly [{
        readonly name: "quote";
        readonly type: "address";
        readonly internalType: "contract ERC20";
    }];
    readonly outputs: readonly [{
        readonly name: "rateInQuote";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getRateInQuoteSafe";
    readonly inputs: readonly [{
        readonly name: "quote";
        readonly type: "address";
        readonly internalType: "contract ERC20";
    }];
    readonly outputs: readonly [{
        readonly name: "rateInQuote";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getRateSafe";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "rate";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "owner";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "pause";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "rateProviderData";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "contract ERC20";
    }];
    readonly outputs: readonly [{
        readonly name: "isPeggedToBase";
        readonly type: "bool";
        readonly internalType: "bool";
    }, {
        readonly name: "rateProvider";
        readonly type: "address";
        readonly internalType: "contract IRateProvider";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "setAuthority";
    readonly inputs: readonly [{
        readonly name: "newAuthority";
        readonly type: "address";
        readonly internalType: "contract Authority";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setRateProviderData";
    readonly inputs: readonly [{
        readonly name: "asset";
        readonly type: "address";
        readonly internalType: "contract ERC20";
    }, {
        readonly name: "isPeggedToBase";
        readonly type: "bool";
        readonly internalType: "bool";
    }, {
        readonly name: "rateProvider";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "transferOwnership";
    readonly inputs: readonly [{
        readonly name: "newOwner";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "unpause";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updateDelay";
    readonly inputs: readonly [{
        readonly name: "minimumUpdateDelayInSeconds";
        readonly type: "uint32";
        readonly internalType: "uint32";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updateExchangeRate";
    readonly inputs: readonly [{
        readonly name: "newExchangeRate";
        readonly type: "uint96";
        readonly internalType: "uint96";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updateLower";
    readonly inputs: readonly [{
        readonly name: "allowedExchangeRateChangeLower";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updateManagementFee";
    readonly inputs: readonly [{
        readonly name: "managementFee";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updatePayoutAddress";
    readonly inputs: readonly [{
        readonly name: "payoutAddress";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updateUpper";
    readonly inputs: readonly [{
        readonly name: "allowedExchangeRateChangeUpper";
        readonly type: "uint16";
        readonly internalType: "uint16";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "vault";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "contract BoringVault";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "event";
    readonly name: "AuthorityUpdated";
    readonly inputs: readonly [{
        readonly name: "user";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "newAuthority";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "contract Authority";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "DelayInSecondsUpdated";
    readonly inputs: readonly [{
        readonly name: "oldDelay";
        readonly type: "uint32";
        readonly indexed: false;
        readonly internalType: "uint32";
    }, {
        readonly name: "newDelay";
        readonly type: "uint32";
        readonly indexed: false;
        readonly internalType: "uint32";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "ExchangeRateUpdated";
    readonly inputs: readonly [{
        readonly name: "oldRate";
        readonly type: "uint96";
        readonly indexed: false;
        readonly internalType: "uint96";
    }, {
        readonly name: "newRate";
        readonly type: "uint96";
        readonly indexed: false;
        readonly internalType: "uint96";
    }, {
        readonly name: "currentTime";
        readonly type: "uint64";
        readonly indexed: false;
        readonly internalType: "uint64";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "FeesClaimed";
    readonly inputs: readonly [{
        readonly name: "feeAsset";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "amount";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "LowerBoundUpdated";
    readonly inputs: readonly [{
        readonly name: "oldBound";
        readonly type: "uint16";
        readonly indexed: false;
        readonly internalType: "uint16";
    }, {
        readonly name: "newBound";
        readonly type: "uint16";
        readonly indexed: false;
        readonly internalType: "uint16";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "ManagementFeeUpdated";
    readonly inputs: readonly [{
        readonly name: "oldFee";
        readonly type: "uint16";
        readonly indexed: false;
        readonly internalType: "uint16";
    }, {
        readonly name: "newFee";
        readonly type: "uint16";
        readonly indexed: false;
        readonly internalType: "uint16";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "OwnershipTransferred";
    readonly inputs: readonly [{
        readonly name: "user";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "newOwner";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "Paused";
    readonly inputs: readonly [];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PayoutAddressUpdated";
    readonly inputs: readonly [{
        readonly name: "oldPayout";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "newPayout";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "RateProviderUpdated";
    readonly inputs: readonly [{
        readonly name: "asset";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "isPegged";
        readonly type: "bool";
        readonly indexed: false;
        readonly internalType: "bool";
    }, {
        readonly name: "rateProvider";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "Unpaused";
    readonly inputs: readonly [];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "UpperBoundUpdated";
    readonly inputs: readonly [{
        readonly name: "oldBound";
        readonly type: "uint16";
        readonly indexed: false;
        readonly internalType: "uint16";
    }, {
        readonly name: "newBound";
        readonly type: "uint16";
        readonly indexed: false;
        readonly internalType: "uint16";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__LowerBoundTooLarge";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__ManagementFeeTooLarge";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__OnlyCallableByBoringVault";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__Paused";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__UpdateDelayTooLarge";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__UpperBoundTooSmall";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AccountantWithRateProviders__ZeroFeesOwed";
    readonly inputs: readonly [];
}];

export { AccountantAbi };
