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 namespace DataTypes {
    type VaultStruct = {
        owner: PromiseOrValue<string>;
        seriesId: PromiseOrValue<BytesLike>;
        ilkId: PromiseOrValue<BytesLike>;
    };
    type VaultStructOutput = [string, string, string] & {
        owner: string;
        seriesId: string;
        ilkId: string;
    };
    type BalancesStruct = {
        art: PromiseOrValue<BigNumberish>;
        ink: PromiseOrValue<BigNumberish>;
    };
    type BalancesStructOutput = [BigNumber, BigNumber] & {
        art: BigNumber;
        ink: BigNumber;
    };
}
export interface YieldProtocolCauldronInterface extends utils.Interface {
    functions: {
        'LOCK()': FunctionFragment;
        'LOCK8605463013()': FunctionFragment;
        'ROOT()': FunctionFragment;
        'ROOT4146650865()': FunctionFragment;
        'accrual(bytes6)': FunctionFragment;
        'addAsset(bytes6,address)': FunctionFragment;
        'addIlks(bytes6,bytes6[])': FunctionFragment;
        'addSeries(bytes6,bytes6,address)': FunctionFragment;
        'assets(bytes6)': FunctionFragment;
        'balances(bytes12)': FunctionFragment;
        'build(address,bytes12,bytes6,bytes6)': FunctionFragment;
        'debt(bytes6,bytes6)': FunctionFragment;
        'debtFromBase(bytes6,uint128)': FunctionFragment;
        'debtToBase(bytes6,uint128)': FunctionFragment;
        'destroy(bytes12)': FunctionFragment;
        'getRoleAdmin(bytes4)': FunctionFragment;
        'give(bytes12,address)': FunctionFragment;
        'grantRole(bytes4,address)': FunctionFragment;
        'grantRoles(bytes4[],address)': FunctionFragment;
        'hasRole(bytes4,address)': FunctionFragment;
        'ilks(bytes6,bytes6)': FunctionFragment;
        'lendingOracles(bytes6)': FunctionFragment;
        'level(bytes12)': FunctionFragment;
        'lockRole(bytes4)': FunctionFragment;
        'mature(bytes6)': FunctionFragment;
        'pour(bytes12,int128,int128)': FunctionFragment;
        'ratesAtMaturity(bytes6)': FunctionFragment;
        'renounceRole(bytes4,address)': FunctionFragment;
        'revokeRole(bytes4,address)': FunctionFragment;
        'revokeRoles(bytes4[],address)': FunctionFragment;
        'roll(bytes12,bytes6,int128)': FunctionFragment;
        'series(bytes6)': FunctionFragment;
        'setDebtLimits(bytes6,bytes6,uint96,uint24,uint8)': FunctionFragment;
        'setLendingOracle(bytes6,address)': FunctionFragment;
        'setRoleAdmin(bytes4,bytes4)': FunctionFragment;
        'setSpotOracle(bytes6,bytes6,address,uint32)': FunctionFragment;
        'slurp(bytes12,uint128,uint128)': FunctionFragment;
        'spotOracles(bytes6,bytes6)': FunctionFragment;
        'stir(bytes12,bytes12,uint128,uint128)': FunctionFragment;
        'tweak(bytes12,bytes6,bytes6)': FunctionFragment;
        'vaults(bytes12)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'LOCK' | 'LOCK8605463013' | 'ROOT' | 'ROOT4146650865' | 'accrual' | 'addAsset' | 'addIlks' | 'addSeries' | 'assets' | 'balances' | 'build' | 'debt' | 'debtFromBase' | 'debtToBase' | 'destroy' | 'getRoleAdmin' | 'give' | 'grantRole' | 'grantRoles' | 'hasRole' | 'ilks' | 'lendingOracles' | 'level' | 'lockRole' | 'mature' | 'pour' | 'ratesAtMaturity' | 'renounceRole' | 'revokeRole' | 'revokeRoles' | 'roll' | 'series' | 'setDebtLimits' | 'setLendingOracle' | 'setRoleAdmin' | 'setSpotOracle' | 'slurp' | 'spotOracles' | 'stir' | 'tweak' | 'vaults'): FunctionFragment;
    encodeFunctionData(functionFragment: 'LOCK', values?: undefined): string;
    encodeFunctionData(functionFragment: 'LOCK8605463013', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROOT', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROOT4146650865', values?: undefined): string;
    encodeFunctionData(functionFragment: 'accrual', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'addAsset', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addIlks', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: 'addSeries', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'assets', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'build', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'debt', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'debtFromBase', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'debtToBase', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'destroy', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'give', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'grantRoles', values: [PromiseOrValue<BytesLike>[], PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'ilks', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'lendingOracles', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'level', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'lockRole', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'mature', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'pour', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'ratesAtMaturity', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRoles', values: [PromiseOrValue<BytesLike>[], PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'roll', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'series', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setDebtLimits', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'setLendingOracle', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setRoleAdmin', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setSpotOracle', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'slurp', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'spotOracles', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'stir', values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'tweak', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'vaults', values: [PromiseOrValue<BytesLike>]): string;
    decodeFunctionResult(functionFragment: 'LOCK', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'LOCK8605463013', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROOT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROOT4146650865', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accrual', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addIlks', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addSeries', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'assets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'build', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtFromBase', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtToBase', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'destroy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'give', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRoles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ilks', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lendingOracles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'level', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mature', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pour', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ratesAtMaturity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRoles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'roll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'series', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDebtLimits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLendingOracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSpotOracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slurp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'spotOracles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stir', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tweak', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vaults', data: BytesLike): Result;
    events: {
        'AssetAdded(bytes6,address)': EventFragment;
        'DebtLimitsSet(bytes6,bytes6,uint96,uint24,uint8)': EventFragment;
        'IlkAdded(bytes6,bytes6)': EventFragment;
        'RateOracleAdded(bytes6,address)': EventFragment;
        'RoleAdminChanged(bytes4,bytes4)': EventFragment;
        'RoleGranted(bytes4,address,address)': EventFragment;
        'RoleRevoked(bytes4,address,address)': EventFragment;
        'SeriesAdded(bytes6,bytes6,address)': EventFragment;
        'SeriesMatured(bytes6,uint256)': EventFragment;
        'SpotOracleAdded(bytes6,bytes6,address,uint32)': EventFragment;
        'VaultBuilt(bytes12,address,bytes6,bytes6)': EventFragment;
        'VaultDestroyed(bytes12)': EventFragment;
        'VaultGiven(bytes12,address)': EventFragment;
        'VaultPoured(bytes12,bytes6,bytes6,int128,int128)': EventFragment;
        'VaultRolled(bytes12,bytes6,uint128)': EventFragment;
        'VaultStirred(bytes12,bytes12,uint128,uint128)': EventFragment;
        'VaultTweaked(bytes12,bytes6,bytes6)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AssetAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DebtLimitsSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'IlkAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RateOracleAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SeriesAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SeriesMatured'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SpotOracleAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultBuilt'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultDestroyed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultGiven'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultPoured'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultRolled'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultStirred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultTweaked'): EventFragment;
}
export interface AssetAddedEventObject {
    assetId: string;
    asset: string;
}
export declare type AssetAddedEvent = TypedEvent<[string, string], AssetAddedEventObject>;
export declare type AssetAddedEventFilter = TypedEventFilter<AssetAddedEvent>;
export interface DebtLimitsSetEventObject {
    baseId: string;
    ilkId: string;
    max: BigNumber;
    min: number;
    dec: number;
}
export declare type DebtLimitsSetEvent = TypedEvent<[string, string, BigNumber, number, number], DebtLimitsSetEventObject>;
export declare type DebtLimitsSetEventFilter = TypedEventFilter<DebtLimitsSetEvent>;
export interface IlkAddedEventObject {
    seriesId: string;
    ilkId: string;
}
export declare type IlkAddedEvent = TypedEvent<[string, string], IlkAddedEventObject>;
export declare type IlkAddedEventFilter = TypedEventFilter<IlkAddedEvent>;
export interface RateOracleAddedEventObject {
    baseId: string;
    oracle: string;
}
export declare type RateOracleAddedEvent = TypedEvent<[string, string], RateOracleAddedEventObject>;
export declare type RateOracleAddedEventFilter = TypedEventFilter<RateOracleAddedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface SeriesAddedEventObject {
    seriesId: string;
    baseId: string;
    fyToken: string;
}
export declare type SeriesAddedEvent = TypedEvent<[string, string, string], SeriesAddedEventObject>;
export declare type SeriesAddedEventFilter = TypedEventFilter<SeriesAddedEvent>;
export interface SeriesMaturedEventObject {
    seriesId: string;
    rateAtMaturity: BigNumber;
}
export declare type SeriesMaturedEvent = TypedEvent<[string, BigNumber], SeriesMaturedEventObject>;
export declare type SeriesMaturedEventFilter = TypedEventFilter<SeriesMaturedEvent>;
export interface SpotOracleAddedEventObject {
    baseId: string;
    ilkId: string;
    oracle: string;
    ratio: number;
}
export declare type SpotOracleAddedEvent = TypedEvent<[string, string, string, number], SpotOracleAddedEventObject>;
export declare type SpotOracleAddedEventFilter = TypedEventFilter<SpotOracleAddedEvent>;
export interface VaultBuiltEventObject {
    vaultId: string;
    owner: string;
    seriesId: string;
    ilkId: string;
}
export declare type VaultBuiltEvent = TypedEvent<[string, string, string, string], VaultBuiltEventObject>;
export declare type VaultBuiltEventFilter = TypedEventFilter<VaultBuiltEvent>;
export interface VaultDestroyedEventObject {
    vaultId: string;
}
export declare type VaultDestroyedEvent = TypedEvent<[string], VaultDestroyedEventObject>;
export declare type VaultDestroyedEventFilter = TypedEventFilter<VaultDestroyedEvent>;
export interface VaultGivenEventObject {
    vaultId: string;
    receiver: string;
}
export declare type VaultGivenEvent = TypedEvent<[string, string], VaultGivenEventObject>;
export declare type VaultGivenEventFilter = TypedEventFilter<VaultGivenEvent>;
export interface VaultPouredEventObject {
    vaultId: string;
    seriesId: string;
    ilkId: string;
    ink: BigNumber;
    art: BigNumber;
}
export declare type VaultPouredEvent = TypedEvent<[string, string, string, BigNumber, BigNumber], VaultPouredEventObject>;
export declare type VaultPouredEventFilter = TypedEventFilter<VaultPouredEvent>;
export interface VaultRolledEventObject {
    vaultId: string;
    seriesId: string;
    art: BigNumber;
}
export declare type VaultRolledEvent = TypedEvent<[string, string, BigNumber], VaultRolledEventObject>;
export declare type VaultRolledEventFilter = TypedEventFilter<VaultRolledEvent>;
export interface VaultStirredEventObject {
    from: string;
    to: string;
    ink: BigNumber;
    art: BigNumber;
}
export declare type VaultStirredEvent = TypedEvent<[string, string, BigNumber, BigNumber], VaultStirredEventObject>;
export declare type VaultStirredEventFilter = TypedEventFilter<VaultStirredEvent>;
export interface VaultTweakedEventObject {
    vaultId: string;
    seriesId: string;
    ilkId: string;
}
export declare type VaultTweakedEvent = TypedEvent<[string, string, string], VaultTweakedEventObject>;
export declare type VaultTweakedEventFilter = TypedEventFilter<VaultTweakedEvent>;
export interface YieldProtocolCauldron extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: YieldProtocolCauldronInterface;
    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: {
        LOCK(overrides?: CallOverrides): Promise<[string]>;
        LOCK8605463013(overrides?: CallOverrides): Promise<[string]>;
        ROOT(overrides?: CallOverrides): Promise<[string]>;
        ROOT4146650865(overrides?: CallOverrides): Promise<[string]>;
        accrual(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addAsset(assetId: PromiseOrValue<BytesLike>, asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addIlks(seriesId: PromiseOrValue<BytesLike>, ilkIds: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addSeries(seriesId: PromiseOrValue<BytesLike>, baseId: PromiseOrValue<BytesLike>, fyToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        assets(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        balances(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            art: BigNumber;
            ink: BigNumber;
        }>;
        build(owner: PromiseOrValue<string>, vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        debt(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            BigNumber,
            number,
            number,
            BigNumber
        ] & {
            max: BigNumber;
            min: number;
            dec: number;
            sum: BigNumber;
        }>;
        debtFromBase(seriesId: PromiseOrValue<BytesLike>, base: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        debtToBase(seriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        destroy(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        give(vaultId: PromiseOrValue<BytesLike>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        grantRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        ilks(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        lendingOracles(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        level(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lockRole(role: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        mature(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pour(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        ratesAtMaturity(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        roll(vaultId: PromiseOrValue<BytesLike>, newSeriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        series(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            string,
            string,
            number
        ] & {
            fyToken: string;
            baseId: string;
            maturity: number;
        }>;
        setDebtLimits(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, min: PromiseOrValue<BigNumberish>, dec: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setLendingOracle(baseId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRoleAdmin(role: PromiseOrValue<BytesLike>, adminRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setSpotOracle(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        slurp(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        spotOracles(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, number] & {
            oracle: string;
            ratio: number;
        }>;
        stir(from: PromiseOrValue<BytesLike>, to: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        tweak(vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vaults(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            string,
            string,
            string
        ] & {
            owner: string;
            seriesId: string;
            ilkId: string;
        }>;
    };
    LOCK(overrides?: CallOverrides): Promise<string>;
    LOCK8605463013(overrides?: CallOverrides): Promise<string>;
    ROOT(overrides?: CallOverrides): Promise<string>;
    ROOT4146650865(overrides?: CallOverrides): Promise<string>;
    accrual(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addAsset(assetId: PromiseOrValue<BytesLike>, asset: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addIlks(seriesId: PromiseOrValue<BytesLike>, ilkIds: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addSeries(seriesId: PromiseOrValue<BytesLike>, baseId: PromiseOrValue<BytesLike>, fyToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    assets(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    balances(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        art: BigNumber;
        ink: BigNumber;
    }>;
    build(owner: PromiseOrValue<string>, vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    debt(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        BigNumber,
        number,
        number,
        BigNumber
    ] & {
        max: BigNumber;
        min: number;
        dec: number;
        sum: BigNumber;
    }>;
    debtFromBase(seriesId: PromiseOrValue<BytesLike>, base: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    debtToBase(seriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    destroy(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    give(vaultId: PromiseOrValue<BytesLike>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    grantRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    ilks(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    lendingOracles(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    level(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lockRole(role: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    mature(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pour(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    ratesAtMaturity(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    roll(vaultId: PromiseOrValue<BytesLike>, newSeriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    series(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        string,
        string,
        number
    ] & {
        fyToken: string;
        baseId: string;
        maturity: number;
    }>;
    setDebtLimits(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, min: PromiseOrValue<BigNumberish>, dec: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setLendingOracle(baseId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRoleAdmin(role: PromiseOrValue<BytesLike>, adminRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setSpotOracle(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    slurp(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    spotOracles(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, number] & {
        oracle: string;
        ratio: number;
    }>;
    stir(from: PromiseOrValue<BytesLike>, to: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    tweak(vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vaults(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        string,
        string,
        string
    ] & {
        owner: string;
        seriesId: string;
        ilkId: string;
    }>;
    callStatic: {
        LOCK(overrides?: CallOverrides): Promise<string>;
        LOCK8605463013(overrides?: CallOverrides): Promise<string>;
        ROOT(overrides?: CallOverrides): Promise<string>;
        ROOT4146650865(overrides?: CallOverrides): Promise<string>;
        accrual(seriesId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        addAsset(assetId: PromiseOrValue<BytesLike>, asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        addIlks(seriesId: PromiseOrValue<BytesLike>, ilkIds: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<void>;
        addSeries(seriesId: PromiseOrValue<BytesLike>, baseId: PromiseOrValue<BytesLike>, fyToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        assets(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        balances(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            art: BigNumber;
            ink: BigNumber;
        }>;
        build(owner: PromiseOrValue<string>, vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<DataTypes.VaultStructOutput>;
        debt(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            BigNumber,
            number,
            number,
            BigNumber
        ] & {
            max: BigNumber;
            min: number;
            dec: number;
            sum: BigNumber;
        }>;
        debtFromBase(seriesId: PromiseOrValue<BytesLike>, base: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        debtToBase(seriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        destroy(vaultId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        give(vaultId: PromiseOrValue<BytesLike>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<DataTypes.VaultStructOutput>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        grantRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        ilks(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        lendingOracles(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        level(vaultId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        lockRole(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        mature(seriesId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        pour(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.BalancesStructOutput>;
        ratesAtMaturity(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        roll(vaultId: PromiseOrValue<BytesLike>, newSeriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[DataTypes.VaultStructOutput, DataTypes.BalancesStructOutput]>;
        series(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            string,
            string,
            number
        ] & {
            fyToken: string;
            baseId: string;
            maturity: number;
        }>;
        setDebtLimits(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, min: PromiseOrValue<BigNumberish>, dec: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setLendingOracle(baseId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setRoleAdmin(role: PromiseOrValue<BytesLike>, adminRole: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setSpotOracle(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, ratio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        slurp(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.BalancesStructOutput>;
        spotOracles(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string, number] & {
            oracle: string;
            ratio: number;
        }>;
        stir(from: PromiseOrValue<BytesLike>, to: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[DataTypes.BalancesStructOutput, DataTypes.BalancesStructOutput]>;
        tweak(vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<DataTypes.VaultStructOutput>;
        vaults(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            string,
            string,
            string
        ] & {
            owner: string;
            seriesId: string;
            ilkId: string;
        }>;
    };
    filters: {
        'AssetAdded(bytes6,address)'(assetId?: PromiseOrValue<BytesLike> | null, asset?: PromiseOrValue<string> | null): AssetAddedEventFilter;
        AssetAdded(assetId?: PromiseOrValue<BytesLike> | null, asset?: PromiseOrValue<string> | null): AssetAddedEventFilter;
        'DebtLimitsSet(bytes6,bytes6,uint96,uint24,uint8)'(baseId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null, max?: null, min?: null, dec?: null): DebtLimitsSetEventFilter;
        DebtLimitsSet(baseId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null, max?: null, min?: null, dec?: null): DebtLimitsSetEventFilter;
        'IlkAdded(bytes6,bytes6)'(seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null): IlkAddedEventFilter;
        IlkAdded(seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null): IlkAddedEventFilter;
        'RateOracleAdded(bytes6,address)'(baseId?: PromiseOrValue<BytesLike> | null, oracle?: PromiseOrValue<string> | null): RateOracleAddedEventFilter;
        RateOracleAdded(baseId?: PromiseOrValue<BytesLike> | null, oracle?: PromiseOrValue<string> | null): RateOracleAddedEventFilter;
        'RoleAdminChanged(bytes4,bytes4)'(role?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes4,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes4,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'SeriesAdded(bytes6,bytes6,address)'(seriesId?: PromiseOrValue<BytesLike> | null, baseId?: PromiseOrValue<BytesLike> | null, fyToken?: PromiseOrValue<string> | null): SeriesAddedEventFilter;
        SeriesAdded(seriesId?: PromiseOrValue<BytesLike> | null, baseId?: PromiseOrValue<BytesLike> | null, fyToken?: PromiseOrValue<string> | null): SeriesAddedEventFilter;
        'SeriesMatured(bytes6,uint256)'(seriesId?: PromiseOrValue<BytesLike> | null, rateAtMaturity?: null): SeriesMaturedEventFilter;
        SeriesMatured(seriesId?: PromiseOrValue<BytesLike> | null, rateAtMaturity?: null): SeriesMaturedEventFilter;
        'SpotOracleAdded(bytes6,bytes6,address,uint32)'(baseId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null, oracle?: PromiseOrValue<string> | null, ratio?: null): SpotOracleAddedEventFilter;
        SpotOracleAdded(baseId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null, oracle?: PromiseOrValue<string> | null, ratio?: null): SpotOracleAddedEventFilter;
        'VaultBuilt(bytes12,address,bytes6,bytes6)'(vaultId?: PromiseOrValue<BytesLike> | null, owner?: PromiseOrValue<string> | null, seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: null): VaultBuiltEventFilter;
        VaultBuilt(vaultId?: PromiseOrValue<BytesLike> | null, owner?: PromiseOrValue<string> | null, seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: null): VaultBuiltEventFilter;
        'VaultDestroyed(bytes12)'(vaultId?: PromiseOrValue<BytesLike> | null): VaultDestroyedEventFilter;
        VaultDestroyed(vaultId?: PromiseOrValue<BytesLike> | null): VaultDestroyedEventFilter;
        'VaultGiven(bytes12,address)'(vaultId?: PromiseOrValue<BytesLike> | null, receiver?: PromiseOrValue<string> | null): VaultGivenEventFilter;
        VaultGiven(vaultId?: PromiseOrValue<BytesLike> | null, receiver?: PromiseOrValue<string> | null): VaultGivenEventFilter;
        'VaultPoured(bytes12,bytes6,bytes6,int128,int128)'(vaultId?: PromiseOrValue<BytesLike> | null, seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null, ink?: null, art?: null): VaultPouredEventFilter;
        VaultPoured(vaultId?: PromiseOrValue<BytesLike> | null, seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null, ink?: null, art?: null): VaultPouredEventFilter;
        'VaultRolled(bytes12,bytes6,uint128)'(vaultId?: PromiseOrValue<BytesLike> | null, seriesId?: PromiseOrValue<BytesLike> | null, art?: null): VaultRolledEventFilter;
        VaultRolled(vaultId?: PromiseOrValue<BytesLike> | null, seriesId?: PromiseOrValue<BytesLike> | null, art?: null): VaultRolledEventFilter;
        'VaultStirred(bytes12,bytes12,uint128,uint128)'(from?: PromiseOrValue<BytesLike> | null, to?: PromiseOrValue<BytesLike> | null, ink?: null, art?: null): VaultStirredEventFilter;
        VaultStirred(from?: PromiseOrValue<BytesLike> | null, to?: PromiseOrValue<BytesLike> | null, ink?: null, art?: null): VaultStirredEventFilter;
        'VaultTweaked(bytes12,bytes6,bytes6)'(vaultId?: PromiseOrValue<BytesLike> | null, seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null): VaultTweakedEventFilter;
        VaultTweaked(vaultId?: PromiseOrValue<BytesLike> | null, seriesId?: PromiseOrValue<BytesLike> | null, ilkId?: PromiseOrValue<BytesLike> | null): VaultTweakedEventFilter;
    };
    estimateGas: {
        LOCK(overrides?: CallOverrides): Promise<BigNumber>;
        LOCK8605463013(overrides?: CallOverrides): Promise<BigNumber>;
        ROOT(overrides?: CallOverrides): Promise<BigNumber>;
        ROOT4146650865(overrides?: CallOverrides): Promise<BigNumber>;
        accrual(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addAsset(assetId: PromiseOrValue<BytesLike>, asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addIlks(seriesId: PromiseOrValue<BytesLike>, ilkIds: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addSeries(seriesId: PromiseOrValue<BytesLike>, baseId: PromiseOrValue<BytesLike>, fyToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        assets(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        balances(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        build(owner: PromiseOrValue<string>, vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        debt(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        debtFromBase(seriesId: PromiseOrValue<BytesLike>, base: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        debtToBase(seriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        destroy(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        give(vaultId: PromiseOrValue<BytesLike>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        grantRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        ilks(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        lendingOracles(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        level(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lockRole(role: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        mature(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pour(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        ratesAtMaturity(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        roll(vaultId: PromiseOrValue<BytesLike>, newSeriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        series(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        setDebtLimits(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, min: PromiseOrValue<BigNumberish>, dec: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setLendingOracle(baseId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRoleAdmin(role: PromiseOrValue<BytesLike>, adminRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setSpotOracle(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        slurp(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        spotOracles(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        stir(from: PromiseOrValue<BytesLike>, to: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        tweak(vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vaults(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        LOCK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        LOCK8605463013(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROOT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROOT4146650865(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accrual(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addAsset(assetId: PromiseOrValue<BytesLike>, asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addIlks(seriesId: PromiseOrValue<BytesLike>, ilkIds: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addSeries(seriesId: PromiseOrValue<BytesLike>, baseId: PromiseOrValue<BytesLike>, fyToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        assets(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balances(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        build(owner: PromiseOrValue<string>, vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        debt(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        debtFromBase(seriesId: PromiseOrValue<BytesLike>, base: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        debtToBase(seriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        destroy(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        give(vaultId: PromiseOrValue<BytesLike>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        grantRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ilks(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lendingOracles(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        level(vaultId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lockRole(role: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        mature(seriesId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pour(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        ratesAtMaturity(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRoles(roles: PromiseOrValue<BytesLike>[], account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        roll(vaultId: PromiseOrValue<BytesLike>, newSeriesId: PromiseOrValue<BytesLike>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        series(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setDebtLimits(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, min: PromiseOrValue<BigNumberish>, dec: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setLendingOracle(baseId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRoleAdmin(role: PromiseOrValue<BytesLike>, adminRole: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setSpotOracle(baseId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, oracle: PromiseOrValue<string>, ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        slurp(vaultId: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        spotOracles(arg0: PromiseOrValue<BytesLike>, arg1: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stir(from: PromiseOrValue<BytesLike>, to: PromiseOrValue<BytesLike>, ink: PromiseOrValue<BigNumberish>, art: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        tweak(vaultId: PromiseOrValue<BytesLike>, seriesId: PromiseOrValue<BytesLike>, ilkId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vaults(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
