import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare type PaymentDataStruct = {
    stablecoinAmountToGive: PromiseOrValue<BigNumberish>;
    stablecoinAmountToReceive: PromiseOrValue<BigNumberish>;
    collateralAmountToGive: PromiseOrValue<BigNumberish>;
    collateralAmountToReceive: PromiseOrValue<BigNumberish>;
};
export declare type PaymentDataStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber] & {
    stablecoinAmountToGive: BigNumber;
    stablecoinAmountToReceive: BigNumber;
    collateralAmountToGive: BigNumber;
    collateralAmountToReceive: BigNumber;
};
export declare type LiquidationOpportunityStruct = {
    maxStablecoinAmountToRepay: PromiseOrValue<BigNumberish>;
    maxCollateralAmountGiven: PromiseOrValue<BigNumberish>;
    thresholdRepayAmount: PromiseOrValue<BigNumberish>;
    discount: PromiseOrValue<BigNumberish>;
    currentDebt: PromiseOrValue<BigNumberish>;
};
export declare type LiquidationOpportunityStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
    maxStablecoinAmountToRepay: BigNumber;
    maxCollateralAmountGiven: BigNumber;
    thresholdRepayAmount: BigNumber;
    discount: BigNumber;
    currentDebt: BigNumber;
};
export declare type VaultParametersStruct = {
    debtCeiling: PromiseOrValue<BigNumberish>;
    collateralFactor: PromiseOrValue<BigNumberish>;
    targetHealthFactor: PromiseOrValue<BigNumberish>;
    interestRate: PromiseOrValue<BigNumberish>;
    liquidationSurcharge: PromiseOrValue<BigNumberish>;
    maxLiquidationDiscount: PromiseOrValue<BigNumberish>;
    whitelistingActivated: PromiseOrValue<boolean>;
    baseBoost: PromiseOrValue<BigNumberish>;
};
export declare type VaultParametersStructOutput = [
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    boolean,
    BigNumber
] & {
    debtCeiling: BigNumber;
    collateralFactor: BigNumber;
    targetHealthFactor: BigNumber;
    interestRate: BigNumber;
    liquidationSurcharge: BigNumber;
    maxLiquidationDiscount: BigNumber;
    whitelistingActivated: boolean;
    baseBoost: BigNumber;
};
export declare type LiquidatorDataStruct = {
    stablecoinAmountToReceive: PromiseOrValue<BigNumberish>;
    collateralAmountToGive: PromiseOrValue<BigNumberish>;
    badDebtFromLiquidation: PromiseOrValue<BigNumberish>;
    oracleValue: PromiseOrValue<BigNumberish>;
    newInterestAccumulator: PromiseOrValue<BigNumberish>;
};
export declare type LiquidatorDataStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
    stablecoinAmountToReceive: BigNumber;
    collateralAmountToGive: BigNumber;
    badDebtFromLiquidation: BigNumber;
    oracleValue: BigNumber;
    newInterestAccumulator: BigNumber;
};
export interface AngleVaultManagerInterface extends utils.Interface {
    functions: {
        'BASE_INTEREST()': FunctionFragment;
        'BASE_PARAMS()': FunctionFragment;
        'DOMAIN_SEPARATOR()': FunctionFragment;
        'HALF_BASE_INTEREST()': FunctionFragment;
        'accrueInterestToTreasury()': FunctionFragment;
        'angle(uint8[],bytes[],address,address)': FunctionFragment;
        'angle(uint8[],bytes[],address,address,address,bytes)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'badDebt()': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'borrowFee()': FunctionFragment;
        'checkLiquidation(uint256,address)': FunctionFragment;
        'collateral()': FunctionFragment;
        'collateralFactor()': FunctionFragment;
        'createVault(address)': FunctionFragment;
        'debtCeiling()': FunctionFragment;
        'dust()': FunctionFragment;
        'getApproved(uint256)': FunctionFragment;
        'getControlledVaults(address)': FunctionFragment;
        'getDebtOut(uint256,uint256,uint256,uint256)': FunctionFragment;
        'getTotalDebt()': FunctionFragment;
        'getVaultDebt(uint256)': FunctionFragment;
        'initialize(address,address,address,(uint256,uint64,uint64,uint64,uint64,uint64,bool,uint256),string)': FunctionFragment;
        'interestAccumulator()': FunctionFragment;
        'interestRate()': FunctionFragment;
        'isApprovedForAll(address,address)': FunctionFragment;
        'isApprovedOrOwner(address,uint256)': FunctionFragment;
        'isWhitelisted(address)': FunctionFragment;
        'lastInterestAccumulatorUpdated()': FunctionFragment;
        'liquidate(uint256[],uint256[],address,address,address,bytes)': FunctionFragment;
        'liquidate(uint256[],uint256[],address,address)': FunctionFragment;
        'liquidationSurcharge()': FunctionFragment;
        'maxLiquidationDiscount()': FunctionFragment;
        'name()': FunctionFragment;
        'nonces(address)': FunctionFragment;
        'oracle()': FunctionFragment;
        'ownerOf(uint256)': FunctionFragment;
        'paused()': FunctionFragment;
        'permit(address,address,bool,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'repayFee()': FunctionFragment;
        'safeTransferFrom(address,address,uint256)': FunctionFragment;
        'safeTransferFrom(address,address,uint256,bytes)': FunctionFragment;
        'setApprovalForAll(address,bool)': FunctionFragment;
        'setBaseURI(string)': FunctionFragment;
        'setDebtCeiling(uint256)': FunctionFragment;
        'setLiquidationBoostParameters(address,uint256[],uint256[])': FunctionFragment;
        'setOracle(address)': FunctionFragment;
        'setTreasury(address)': FunctionFragment;
        'setUint64(uint64,bytes32)': FunctionFragment;
        'stablecoin()': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'surplus()': FunctionFragment;
        'symbol()': FunctionFragment;
        'targetHealthFactor()': FunctionFragment;
        'togglePause()': FunctionFragment;
        'toggleWhitelist(address)': FunctionFragment;
        'tokenURI(uint256)': FunctionFragment;
        'totalNormalizedDebt()': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'treasury()': FunctionFragment;
        'vaultData(uint256)': FunctionFragment;
        'vaultIDCount()': FunctionFragment;
        'veBoostProxy()': FunctionFragment;
        'whitelistingActivated()': FunctionFragment;
        'xLiquidationBoost(uint256)': FunctionFragment;
        'yLiquidationBoost(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'BASE_INTEREST' | 'BASE_PARAMS' | 'DOMAIN_SEPARATOR' | 'HALF_BASE_INTEREST' | 'accrueInterestToTreasury' | 'angle(uint8[],bytes[],address,address)' | 'angle(uint8[],bytes[],address,address,address,bytes)' | 'approve' | 'badDebt' | 'balanceOf' | 'borrowFee' | 'checkLiquidation' | 'collateral' | 'collateralFactor' | 'createVault' | 'debtCeiling' | 'dust' | 'getApproved' | 'getControlledVaults' | 'getDebtOut' | 'getTotalDebt' | 'getVaultDebt' | 'initialize' | 'interestAccumulator' | 'interestRate' | 'isApprovedForAll' | 'isApprovedOrOwner' | 'isWhitelisted' | 'lastInterestAccumulatorUpdated' | 'liquidate(uint256[],uint256[],address,address,address,bytes)' | 'liquidate(uint256[],uint256[],address,address)' | 'liquidationSurcharge' | 'maxLiquidationDiscount' | 'name' | 'nonces' | 'oracle' | 'ownerOf' | 'paused' | 'permit' | 'repayFee' | 'safeTransferFrom(address,address,uint256)' | 'safeTransferFrom(address,address,uint256,bytes)' | 'setApprovalForAll' | 'setBaseURI' | 'setDebtCeiling' | 'setLiquidationBoostParameters' | 'setOracle' | 'setTreasury' | 'setUint64' | 'stablecoin' | 'supportsInterface' | 'surplus' | 'symbol' | 'targetHealthFactor' | 'togglePause' | 'toggleWhitelist' | 'tokenURI' | 'totalNormalizedDebt' | 'transferFrom' | 'treasury' | 'vaultData' | 'vaultIDCount' | 'veBoostProxy' | 'whitelistingActivated' | 'xLiquidationBoost' | 'yLiquidationBoost'): FunctionFragment;
    encodeFunctionData(functionFragment: 'BASE_INTEREST', values?: undefined): string;
    encodeFunctionData(functionFragment: 'BASE_PARAMS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DOMAIN_SEPARATOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'HALF_BASE_INTEREST', values?: undefined): string;
    encodeFunctionData(functionFragment: 'accrueInterestToTreasury', values?: undefined): string;
    encodeFunctionData(functionFragment: 'angle(uint8[],bytes[],address,address)', values: [
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'angle(uint8[],bytes[],address,address,address,bytes)', values: [
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'badDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'borrowFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'checkLiquidation', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'collateral', values?: undefined): string;
    encodeFunctionData(functionFragment: 'collateralFactor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'createVault', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'debtCeiling', values?: undefined): string;
    encodeFunctionData(functionFragment: 'dust', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getApproved', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getControlledVaults', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getDebtOut', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'getTotalDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getVaultDebt', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        VaultParametersStruct,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'interestAccumulator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'interestRate', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isApprovedForAll', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isApprovedOrOwner', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isWhitelisted', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastInterestAccumulatorUpdated', values?: undefined): string;
    encodeFunctionData(functionFragment: 'liquidate(uint256[],uint256[],address,address,address,bytes)', values: [
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'liquidate(uint256[],uint256[],address,address)', values: [
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'liquidationSurcharge', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxLiquidationDiscount', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nonces', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'oracle', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ownerOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'permit', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<boolean>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'repayFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setApprovalForAll', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setBaseURI', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDebtCeiling', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setLiquidationBoostParameters', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'setOracle', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setTreasury', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setUint64', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'stablecoin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'surplus', values?: undefined): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'targetHealthFactor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'togglePause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'toggleWhitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'tokenURI', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalNormalizedDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'treasury', values?: undefined): string;
    encodeFunctionData(functionFragment: 'vaultData', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'vaultIDCount', values?: undefined): string;
    encodeFunctionData(functionFragment: 'veBoostProxy', values?: undefined): string;
    encodeFunctionData(functionFragment: 'whitelistingActivated', values?: undefined): string;
    encodeFunctionData(functionFragment: 'xLiquidationBoost', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'yLiquidationBoost', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'BASE_INTEREST', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'BASE_PARAMS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DOMAIN_SEPARATOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'HALF_BASE_INTEREST', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accrueInterestToTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'angle(uint8[],bytes[],address,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'angle(uint8[],bytes[],address,address,address,bytes)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'badDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrowFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkLiquidation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'collateral', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'collateralFactor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'createVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtCeiling', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'dust', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getApproved', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getControlledVaults', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDebtOut', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVaultDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'interestAccumulator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'interestRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isApprovedForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isApprovedOrOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isWhitelisted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastInterestAccumulatorUpdated', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'liquidate(uint256[],uint256[],address,address,address,bytes)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'liquidate(uint256[],uint256[],address,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'liquidationSurcharge', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxLiquidationDiscount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'oracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ownerOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'permit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'repayFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setApprovalForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBaseURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDebtCeiling', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLiquidationBoostParameters', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setOracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setUint64', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stablecoin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'surplus', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'targetHealthFactor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'togglePause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'toggleWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalNormalizedDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'treasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vaultData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vaultIDCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'veBoostProxy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelistingActivated', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xLiquidationBoost', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'yLiquidationBoost', data: BytesLike): Result;
    events: {
        'AccruedToTreasury(uint256,uint256)': EventFragment;
        'Approval(address,address,uint256)': EventFragment;
        'ApprovalForAll(address,address,bool)': EventFragment;
        'CollateralAmountUpdated(uint256,uint256,uint8)': EventFragment;
        'DebtCeilingUpdated(uint256)': EventFragment;
        'DebtTransferred(uint256,uint256,address,uint256)': EventFragment;
        'FiledUint64(uint64,bytes32)': EventFragment;
        'InterestAccumulatorUpdated(uint256,uint256)': EventFragment;
        'InternalDebtUpdated(uint256,uint256,uint8)': EventFragment;
        'LiquidatedVaults(uint256[])': EventFragment;
        'LiquidationBoostParametersUpdated(address,uint256[],uint256[])': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AccruedToTreasury'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ApprovalForAll'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CollateralAmountUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DebtCeilingUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DebtTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FiledUint64'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'InterestAccumulatorUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'InternalDebtUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LiquidatedVaults'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LiquidationBoostParametersUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
}
export interface AccruedToTreasuryEventObject {
    surplusEndValue: BigNumber;
    badDebtEndValue: BigNumber;
}
export declare type AccruedToTreasuryEvent = TypedEvent<[BigNumber, BigNumber], AccruedToTreasuryEventObject>;
export declare type AccruedToTreasuryEventFilter = TypedEventFilter<AccruedToTreasuryEvent>;
export interface ApprovalEventObject {
    owner: string;
    approved: string;
    tokenId: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ApprovalForAllEventObject {
    owner: string;
    operator: string;
    approved: boolean;
}
export declare type ApprovalForAllEvent = TypedEvent<[string, string, boolean], ApprovalForAllEventObject>;
export declare type ApprovalForAllEventFilter = TypedEventFilter<ApprovalForAllEvent>;
export interface CollateralAmountUpdatedEventObject {
    vaultID: BigNumber;
    collateralAmount: BigNumber;
    isIncrease: number;
}
export declare type CollateralAmountUpdatedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    number
], CollateralAmountUpdatedEventObject>;
export declare type CollateralAmountUpdatedEventFilter = TypedEventFilter<CollateralAmountUpdatedEvent>;
export interface DebtCeilingUpdatedEventObject {
    debtCeiling: BigNumber;
}
export declare type DebtCeilingUpdatedEvent = TypedEvent<[BigNumber], DebtCeilingUpdatedEventObject>;
export declare type DebtCeilingUpdatedEventFilter = TypedEventFilter<DebtCeilingUpdatedEvent>;
export interface DebtTransferredEventObject {
    srcVaultID: BigNumber;
    dstVaultID: BigNumber;
    dstVaultManager: string;
    amount: BigNumber;
}
export declare type DebtTransferredEvent = TypedEvent<[BigNumber, BigNumber, string, BigNumber], DebtTransferredEventObject>;
export declare type DebtTransferredEventFilter = TypedEventFilter<DebtTransferredEvent>;
export interface FiledUint64EventObject {
    param: BigNumber;
    what: string;
}
export declare type FiledUint64Event = TypedEvent<[BigNumber, string], FiledUint64EventObject>;
export declare type FiledUint64EventFilter = TypedEventFilter<FiledUint64Event>;
export interface InterestAccumulatorUpdatedEventObject {
    value: BigNumber;
    timestamp: BigNumber;
}
export declare type InterestAccumulatorUpdatedEvent = TypedEvent<[BigNumber, BigNumber], InterestAccumulatorUpdatedEventObject>;
export declare type InterestAccumulatorUpdatedEventFilter = TypedEventFilter<InterestAccumulatorUpdatedEvent>;
export interface InternalDebtUpdatedEventObject {
    vaultID: BigNumber;
    internalAmount: BigNumber;
    isIncrease: number;
}
export declare type InternalDebtUpdatedEvent = TypedEvent<[BigNumber, BigNumber, number], InternalDebtUpdatedEventObject>;
export declare type InternalDebtUpdatedEventFilter = TypedEventFilter<InternalDebtUpdatedEvent>;
export interface LiquidatedVaultsEventObject {
    vaultIDs: BigNumber[];
}
export declare type LiquidatedVaultsEvent = TypedEvent<[BigNumber[]], LiquidatedVaultsEventObject>;
export declare type LiquidatedVaultsEventFilter = TypedEventFilter<LiquidatedVaultsEvent>;
export interface LiquidationBoostParametersUpdatedEventObject {
    _veBoostProxy: string;
    xBoost: BigNumber[];
    yBoost: BigNumber[];
}
export declare type LiquidationBoostParametersUpdatedEvent = TypedEvent<[
    string,
    BigNumber[],
    BigNumber[]
], LiquidationBoostParametersUpdatedEventObject>;
export declare type LiquidationBoostParametersUpdatedEventFilter = TypedEventFilter<LiquidationBoostParametersUpdatedEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    tokenId: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface AngleVaultManager extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AngleVaultManagerInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        BASE_INTEREST(overrides?: CallOverrides): Promise<[BigNumber]>;
        BASE_PARAMS(overrides?: CallOverrides): Promise<[BigNumber]>;
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
        HALF_BASE_INTEREST(overrides?: CallOverrides): Promise<[BigNumber]>;
        accrueInterestToTreasury(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'angle(uint8[],bytes[],address,address)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'angle(uint8[],bytes[],address,address,address,bytes)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, repayData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approve(to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        badDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        borrowFee(overrides?: CallOverrides): Promise<[BigNumber]>;
        checkLiquidation(vaultID: PromiseOrValue<BigNumberish>, liquidator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            LiquidationOpportunityStructOutput
        ] & {
            liqOpp: LiquidationOpportunityStructOutput;
        }>;
        collateral(overrides?: CallOverrides): Promise<[string]>;
        collateralFactor(overrides?: CallOverrides): Promise<[BigNumber]>;
        createVault(toVault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        debtCeiling(overrides?: CallOverrides): Promise<[BigNumber]>;
        dust(overrides?: CallOverrides): Promise<[BigNumber]>;
        getApproved(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getControlledVaults(spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[], BigNumber]>;
        getDebtOut(vaultID: PromiseOrValue<BigNumberish>, stablecoinAmount: PromiseOrValue<BigNumberish>, senderBorrowFee: PromiseOrValue<BigNumberish>, senderRepayFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getTotalDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        getVaultDebt(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        initialize(_treasury: PromiseOrValue<string>, _collateral: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, params: VaultParametersStruct, _symbol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        interestAccumulator(overrides?: CallOverrides): Promise<[BigNumber]>;
        interestRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isApprovedOrOwner(spender: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        lastInterestAccumulatorUpdated(overrides?: CallOverrides): Promise<[BigNumber]>;
        'liquidate(uint256[],uint256[],address,address,address,bytes)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'liquidate(uint256[],uint256[],address,address)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        liquidationSurcharge(overrides?: CallOverrides): Promise<[BigNumber]>;
        maxLiquidationDiscount(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        ownerOf(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        repayFee(overrides?: CallOverrides): Promise<[BigNumber]>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDebtCeiling(_debtCeiling: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLiquidationBoostParameters(_veBoostProxy: PromiseOrValue<string>, xBoost: PromiseOrValue<BigNumberish>[], yBoost: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setUint64(param: PromiseOrValue<BigNumberish>, what: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stablecoin(overrides?: CallOverrides): Promise<[string]>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        surplus(overrides?: CallOverrides): Promise<[BigNumber]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        targetHealthFactor(overrides?: CallOverrides): Promise<[BigNumber]>;
        togglePause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        toggleWhitelist(target: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        tokenURI(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        totalNormalizedDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        treasury(overrides?: CallOverrides): Promise<[string]>;
        vaultData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            collateralAmount: BigNumber;
            normalizedDebt: BigNumber;
        }>;
        vaultIDCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        veBoostProxy(overrides?: CallOverrides): Promise<[string]>;
        whitelistingActivated(overrides?: CallOverrides): Promise<[boolean]>;
        xLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        yLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    BASE_INTEREST(overrides?: CallOverrides): Promise<BigNumber>;
    BASE_PARAMS(overrides?: CallOverrides): Promise<BigNumber>;
    DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
    HALF_BASE_INTEREST(overrides?: CallOverrides): Promise<BigNumber>;
    accrueInterestToTreasury(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'angle(uint8[],bytes[],address,address)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'angle(uint8[],bytes[],address,address,address,bytes)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, repayData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approve(to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    badDebt(overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    borrowFee(overrides?: CallOverrides): Promise<BigNumber>;
    checkLiquidation(vaultID: PromiseOrValue<BigNumberish>, liquidator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<LiquidationOpportunityStructOutput>;
    collateral(overrides?: CallOverrides): Promise<string>;
    collateralFactor(overrides?: CallOverrides): Promise<BigNumber>;
    createVault(toVault: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    debtCeiling(overrides?: CallOverrides): Promise<BigNumber>;
    dust(overrides?: CallOverrides): Promise<BigNumber>;
    getApproved(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getControlledVaults(spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[], BigNumber]>;
    getDebtOut(vaultID: PromiseOrValue<BigNumberish>, stablecoinAmount: PromiseOrValue<BigNumberish>, senderBorrowFee: PromiseOrValue<BigNumberish>, senderRepayFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getTotalDebt(overrides?: CallOverrides): Promise<BigNumber>;
    getVaultDebt(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    initialize(_treasury: PromiseOrValue<string>, _collateral: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, params: VaultParametersStruct, _symbol: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    interestAccumulator(overrides?: CallOverrides): Promise<BigNumber>;
    interestRate(overrides?: CallOverrides): Promise<BigNumber>;
    isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isApprovedOrOwner(spender: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    lastInterestAccumulatorUpdated(overrides?: CallOverrides): Promise<BigNumber>;
    'liquidate(uint256[],uint256[],address,address,address,bytes)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'liquidate(uint256[],uint256[],address,address)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    liquidationSurcharge(overrides?: CallOverrides): Promise<BigNumber>;
    maxLiquidationDiscount(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    oracle(overrides?: CallOverrides): Promise<string>;
    ownerOf(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    repayFee(overrides?: CallOverrides): Promise<BigNumber>;
    'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDebtCeiling(_debtCeiling: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLiquidationBoostParameters(_veBoostProxy: PromiseOrValue<string>, xBoost: PromiseOrValue<BigNumberish>[], yBoost: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setUint64(param: PromiseOrValue<BigNumberish>, what: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stablecoin(overrides?: CallOverrides): Promise<string>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    surplus(overrides?: CallOverrides): Promise<BigNumber>;
    symbol(overrides?: CallOverrides): Promise<string>;
    targetHealthFactor(overrides?: CallOverrides): Promise<BigNumber>;
    togglePause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    toggleWhitelist(target: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    tokenURI(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    totalNormalizedDebt(overrides?: CallOverrides): Promise<BigNumber>;
    transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    treasury(overrides?: CallOverrides): Promise<string>;
    vaultData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        collateralAmount: BigNumber;
        normalizedDebt: BigNumber;
    }>;
    vaultIDCount(overrides?: CallOverrides): Promise<BigNumber>;
    veBoostProxy(overrides?: CallOverrides): Promise<string>;
    whitelistingActivated(overrides?: CallOverrides): Promise<boolean>;
    xLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    yLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        BASE_INTEREST(overrides?: CallOverrides): Promise<BigNumber>;
        BASE_PARAMS(overrides?: CallOverrides): Promise<BigNumber>;
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
        HALF_BASE_INTEREST(overrides?: CallOverrides): Promise<BigNumber>;
        accrueInterestToTreasury(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            surplusValue: BigNumber;
            badDebtValue: BigNumber;
        }>;
        'angle(uint8[],bytes[],address,address)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PaymentDataStructOutput>;
        'angle(uint8[],bytes[],address,address,address,bytes)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, repayData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PaymentDataStructOutput>;
        approve(to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        badDebt(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        borrowFee(overrides?: CallOverrides): Promise<BigNumber>;
        checkLiquidation(vaultID: PromiseOrValue<BigNumberish>, liquidator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<LiquidationOpportunityStructOutput>;
        collateral(overrides?: CallOverrides): Promise<string>;
        collateralFactor(overrides?: CallOverrides): Promise<BigNumber>;
        createVault(toVault: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        debtCeiling(overrides?: CallOverrides): Promise<BigNumber>;
        dust(overrides?: CallOverrides): Promise<BigNumber>;
        getApproved(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getControlledVaults(spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[], BigNumber]>;
        getDebtOut(vaultID: PromiseOrValue<BigNumberish>, stablecoinAmount: PromiseOrValue<BigNumberish>, senderBorrowFee: PromiseOrValue<BigNumberish>, senderRepayFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getTotalDebt(overrides?: CallOverrides): Promise<BigNumber>;
        getVaultDebt(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_treasury: PromiseOrValue<string>, _collateral: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, params: VaultParametersStruct, _symbol: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        interestAccumulator(overrides?: CallOverrides): Promise<BigNumber>;
        interestRate(overrides?: CallOverrides): Promise<BigNumber>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isApprovedOrOwner(spender: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastInterestAccumulatorUpdated(overrides?: CallOverrides): Promise<BigNumber>;
        'liquidate(uint256[],uint256[],address,address,address,bytes)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<LiquidatorDataStructOutput>;
        'liquidate(uint256[],uint256[],address,address)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<LiquidatorDataStructOutput>;
        liquidationSurcharge(overrides?: CallOverrides): Promise<BigNumber>;
        maxLiquidationDiscount(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<string>;
        ownerOf(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        repayFee(overrides?: CallOverrides): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDebtCeiling(_debtCeiling: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setLiquidationBoostParameters(_veBoostProxy: PromiseOrValue<string>, xBoost: PromiseOrValue<BigNumberish>[], yBoost: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setUint64(param: PromiseOrValue<BigNumberish>, what: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        stablecoin(overrides?: CallOverrides): Promise<string>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        surplus(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<string>;
        targetHealthFactor(overrides?: CallOverrides): Promise<BigNumber>;
        togglePause(overrides?: CallOverrides): Promise<void>;
        toggleWhitelist(target: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        tokenURI(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        totalNormalizedDebt(overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        treasury(overrides?: CallOverrides): Promise<string>;
        vaultData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            collateralAmount: BigNumber;
            normalizedDebt: BigNumber;
        }>;
        vaultIDCount(overrides?: CallOverrides): Promise<BigNumber>;
        veBoostProxy(overrides?: CallOverrides): Promise<string>;
        whitelistingActivated(overrides?: CallOverrides): Promise<boolean>;
        xLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        yLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'AccruedToTreasury(uint256,uint256)'(surplusEndValue?: null, badDebtEndValue?: null): AccruedToTreasuryEventFilter;
        AccruedToTreasury(surplusEndValue?: null, badDebtEndValue?: null): AccruedToTreasuryEventFilter;
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        'ApprovalForAll(address,address,bool)'(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        ApprovalForAll(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        'CollateralAmountUpdated(uint256,uint256,uint8)'(vaultID?: null, collateralAmount?: null, isIncrease?: null): CollateralAmountUpdatedEventFilter;
        CollateralAmountUpdated(vaultID?: null, collateralAmount?: null, isIncrease?: null): CollateralAmountUpdatedEventFilter;
        'DebtCeilingUpdated(uint256)'(debtCeiling?: null): DebtCeilingUpdatedEventFilter;
        DebtCeilingUpdated(debtCeiling?: null): DebtCeilingUpdatedEventFilter;
        'DebtTransferred(uint256,uint256,address,uint256)'(srcVaultID?: null, dstVaultID?: null, dstVaultManager?: null, amount?: null): DebtTransferredEventFilter;
        DebtTransferred(srcVaultID?: null, dstVaultID?: null, dstVaultManager?: null, amount?: null): DebtTransferredEventFilter;
        'FiledUint64(uint64,bytes32)'(param?: null, what?: null): FiledUint64EventFilter;
        FiledUint64(param?: null, what?: null): FiledUint64EventFilter;
        'InterestAccumulatorUpdated(uint256,uint256)'(value?: null, timestamp?: null): InterestAccumulatorUpdatedEventFilter;
        InterestAccumulatorUpdated(value?: null, timestamp?: null): InterestAccumulatorUpdatedEventFilter;
        'InternalDebtUpdated(uint256,uint256,uint8)'(vaultID?: null, internalAmount?: null, isIncrease?: null): InternalDebtUpdatedEventFilter;
        InternalDebtUpdated(vaultID?: null, internalAmount?: null, isIncrease?: null): InternalDebtUpdatedEventFilter;
        'LiquidatedVaults(uint256[])'(vaultIDs?: null): LiquidatedVaultsEventFilter;
        LiquidatedVaults(vaultIDs?: null): LiquidatedVaultsEventFilter;
        'LiquidationBoostParametersUpdated(address,uint256[],uint256[])'(_veBoostProxy?: PromiseOrValue<string> | null, xBoost?: null, yBoost?: null): LiquidationBoostParametersUpdatedEventFilter;
        LiquidationBoostParametersUpdated(_veBoostProxy?: PromiseOrValue<string> | null, xBoost?: null, yBoost?: null): LiquidationBoostParametersUpdatedEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
    };
    estimateGas: {
        BASE_INTEREST(overrides?: CallOverrides): Promise<BigNumber>;
        BASE_PARAMS(overrides?: CallOverrides): Promise<BigNumber>;
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
        HALF_BASE_INTEREST(overrides?: CallOverrides): Promise<BigNumber>;
        accrueInterestToTreasury(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'angle(uint8[],bytes[],address,address)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'angle(uint8[],bytes[],address,address,address,bytes)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, repayData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approve(to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        badDebt(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        borrowFee(overrides?: CallOverrides): Promise<BigNumber>;
        checkLiquidation(vaultID: PromiseOrValue<BigNumberish>, liquidator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        collateral(overrides?: CallOverrides): Promise<BigNumber>;
        collateralFactor(overrides?: CallOverrides): Promise<BigNumber>;
        createVault(toVault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        debtCeiling(overrides?: CallOverrides): Promise<BigNumber>;
        dust(overrides?: CallOverrides): Promise<BigNumber>;
        getApproved(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getControlledVaults(spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDebtOut(vaultID: PromiseOrValue<BigNumberish>, stablecoinAmount: PromiseOrValue<BigNumberish>, senderBorrowFee: PromiseOrValue<BigNumberish>, senderRepayFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getTotalDebt(overrides?: CallOverrides): Promise<BigNumber>;
        getVaultDebt(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_treasury: PromiseOrValue<string>, _collateral: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, params: VaultParametersStruct, _symbol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        interestAccumulator(overrides?: CallOverrides): Promise<BigNumber>;
        interestRate(overrides?: CallOverrides): Promise<BigNumber>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isApprovedOrOwner(spender: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastInterestAccumulatorUpdated(overrides?: CallOverrides): Promise<BigNumber>;
        'liquidate(uint256[],uint256[],address,address,address,bytes)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'liquidate(uint256[],uint256[],address,address)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        liquidationSurcharge(overrides?: CallOverrides): Promise<BigNumber>;
        maxLiquidationDiscount(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        repayFee(overrides?: CallOverrides): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDebtCeiling(_debtCeiling: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLiquidationBoostParameters(_veBoostProxy: PromiseOrValue<string>, xBoost: PromiseOrValue<BigNumberish>[], yBoost: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setUint64(param: PromiseOrValue<BigNumberish>, what: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stablecoin(overrides?: CallOverrides): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        surplus(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        targetHealthFactor(overrides?: CallOverrides): Promise<BigNumber>;
        togglePause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        toggleWhitelist(target: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        tokenURI(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalNormalizedDebt(overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        treasury(overrides?: CallOverrides): Promise<BigNumber>;
        vaultData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        vaultIDCount(overrides?: CallOverrides): Promise<BigNumber>;
        veBoostProxy(overrides?: CallOverrides): Promise<BigNumber>;
        whitelistingActivated(overrides?: CallOverrides): Promise<BigNumber>;
        xLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        yLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        BASE_INTEREST(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        BASE_PARAMS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        HALF_BASE_INTEREST(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accrueInterestToTreasury(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'angle(uint8[],bytes[],address,address)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'angle(uint8[],bytes[],address,address,address,bytes)'(actions: PromiseOrValue<BigNumberish>[], datas: PromiseOrValue<BytesLike>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, repayData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approve(to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        badDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        checkLiquidation(vaultID: PromiseOrValue<BigNumberish>, liquidator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        collateral(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        collateralFactor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        createVault(toVault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        debtCeiling(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        dust(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getApproved(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getControlledVaults(spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDebtOut(vaultID: PromiseOrValue<BigNumberish>, stablecoinAmount: PromiseOrValue<BigNumberish>, senderBorrowFee: PromiseOrValue<BigNumberish>, senderRepayFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getTotalDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVaultDebt(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_treasury: PromiseOrValue<string>, _collateral: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, params: VaultParametersStruct, _symbol: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        interestAccumulator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        interestRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isApprovedOrOwner(spender: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isWhitelisted(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastInterestAccumulatorUpdated(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'liquidate(uint256[],uint256[],address,address,address,bytes)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, who: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'liquidate(uint256[],uint256[],address,address)'(vaultIDs: PromiseOrValue<BigNumberish>[], amounts: PromiseOrValue<BigNumberish>[], from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        liquidationSurcharge(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxLiquidationDiscount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nonces(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ownerOf(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        permit(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, deadline: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        repayFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setBaseURI(baseURI_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDebtCeiling(_debtCeiling: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLiquidationBoostParameters(_veBoostProxy: PromiseOrValue<string>, xBoost: PromiseOrValue<BigNumberish>[], yBoost: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTreasury(_treasury: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setUint64(param: PromiseOrValue<BigNumberish>, what: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stablecoin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        surplus(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        targetHealthFactor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        togglePause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        toggleWhitelist(target: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        tokenURI(vaultID: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalNormalizedDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, vaultID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        treasury(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vaultData(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vaultIDCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        veBoostProxy(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelistingActivated(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        yLiquidationBoost(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
