import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, 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 type EActionStruct = {
    target: PromiseOrValue<string>;
    value: PromiseOrValue<BigNumberish>;
    data: PromiseOrValue<BytesLike>;
};
export type EActionStructOutput = [string, BigNumber, string] & {
    target: string;
    value: BigNumber;
    data: string;
};
export type HarvestSwapParamsStruct = {
    path: PromiseOrValue<string>[];
    min: PromiseOrValue<BigNumberish>;
    deadline: PromiseOrValue<BigNumberish>;
    pathData: PromiseOrValue<BytesLike>;
};
export type HarvestSwapParamsStructOutput = [
    string[],
    BigNumber,
    BigNumber,
    string
] & {
    path: string[];
    min: BigNumber;
    deadline: BigNumber;
    pathData: string;
};
export interface LevConvexBaseInterface extends utils.Interface {
    functions: {
        "DEFAULT_ADMIN_ROLE()": FunctionFragment;
        "GUARDIAN()": FunctionFragment;
        "MANAGER()": FunctionFragment;
        "acceptOwnership()": FunctionFragment;
        "adjustLeverage(uint256,uint256,uint16)": FunctionFragment;
        "closePosition(uint256)": FunctionFragment;
        "collateralToUnderlying()": FunctionFragment;
        "convexBooster()": FunctionFragment;
        "convexRewardPool()": FunctionFragment;
        "credAcc()": FunctionFragment;
        "creditFacade()": FunctionFragment;
        "creditManager()": FunctionFragment;
        "curveAdapter()": FunctionFragment;
        "deposit(uint256)": FunctionFragment;
        "emergencyAction((address,uint256,bytes)[])": FunctionFragment;
        "farmRouter()": FunctionFragment;
        "getAndUpdateTvl()": FunctionFragment;
        "getDepositAmnt(uint256)": FunctionFragment;
        "getLeverage()": FunctionFragment;
        "getLpBalance()": FunctionFragment;
        "getLpToken()": FunctionFragment;
        "getMaxTvl()": FunctionFragment;
        "getRoleAdmin(bytes32)": FunctionFragment;
        "getTotalAssets()": FunctionFragment;
        "getTvl()": FunctionFragment;
        "getWithdrawAmnt(uint256)": FunctionFragment;
        "grantRole(bytes32,address)": FunctionFragment;
        "harvest((address[],uint256,uint256,bytes)[],(address[],uint256,uint256,bytes)[])": FunctionFragment;
        "harvestOwnTokens((address[],uint256,uint256,bytes)[])": FunctionFragment;
        "hasRole(bytes32,address)": FunctionFragment;
        "leverageFactor()": FunctionFragment;
        "loanHealth()": FunctionFragment;
        "owner()": FunctionFragment;
        "pendingOwner()": FunctionFragment;
        "recieve()": FunctionFragment;
        "redeem(address,uint256)": FunctionFragment;
        "renounceRole(bytes32,address)": FunctionFragment;
        "revokeRole(bytes32,address)": FunctionFragment;
        "setVault(address)": FunctionFragment;
        "supportsInterface(bytes4)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "underlying()": FunctionFragment;
        "uniswapV3Adapter()": FunctionFragment;
        "vault()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "DEFAULT_ADMIN_ROLE" | "GUARDIAN" | "MANAGER" | "acceptOwnership" | "adjustLeverage" | "closePosition" | "collateralToUnderlying" | "convexBooster" | "convexRewardPool" | "credAcc" | "creditFacade" | "creditManager" | "curveAdapter" | "deposit" | "emergencyAction" | "farmRouter" | "getAndUpdateTvl" | "getDepositAmnt" | "getLeverage" | "getLpBalance" | "getLpToken" | "getMaxTvl" | "getRoleAdmin" | "getTotalAssets" | "getTvl" | "getWithdrawAmnt" | "grantRole" | "harvest" | "harvestOwnTokens" | "hasRole" | "leverageFactor" | "loanHealth" | "owner" | "pendingOwner" | "recieve" | "redeem" | "renounceRole" | "revokeRole" | "setVault" | "supportsInterface" | "transferOwnership" | "underlying" | "uniswapV3Adapter" | "vault"): FunctionFragment;
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "GUARDIAN", values?: undefined): string;
    encodeFunctionData(functionFragment: "MANAGER", values?: undefined): string;
    encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "adjustLeverage", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "closePosition", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "collateralToUnderlying", values?: undefined): string;
    encodeFunctionData(functionFragment: "convexBooster", values?: undefined): string;
    encodeFunctionData(functionFragment: "convexRewardPool", values?: undefined): string;
    encodeFunctionData(functionFragment: "credAcc", values?: undefined): string;
    encodeFunctionData(functionFragment: "creditFacade", values?: undefined): string;
    encodeFunctionData(functionFragment: "creditManager", values?: undefined): string;
    encodeFunctionData(functionFragment: "curveAdapter", values?: undefined): string;
    encodeFunctionData(functionFragment: "deposit", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "emergencyAction", values: [EActionStruct[]]): string;
    encodeFunctionData(functionFragment: "farmRouter", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAndUpdateTvl", values?: undefined): string;
    encodeFunctionData(functionFragment: "getDepositAmnt", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getLeverage", values?: undefined): string;
    encodeFunctionData(functionFragment: "getLpBalance", values?: undefined): string;
    encodeFunctionData(functionFragment: "getLpToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "getMaxTvl", values?: undefined): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "getTotalAssets", values?: undefined): string;
    encodeFunctionData(functionFragment: "getTvl", values?: undefined): string;
    encodeFunctionData(functionFragment: "getWithdrawAmnt", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "grantRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "harvest", values: [HarvestSwapParamsStruct[], HarvestSwapParamsStruct[]]): string;
    encodeFunctionData(functionFragment: "harvestOwnTokens", values: [HarvestSwapParamsStruct[]]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "leverageFactor", values?: undefined): string;
    encodeFunctionData(functionFragment: "loanHealth", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string;
    encodeFunctionData(functionFragment: "recieve", values?: undefined): string;
    encodeFunctionData(functionFragment: "redeem", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "renounceRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "revokeRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setVault", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "underlying", values?: undefined): string;
    encodeFunctionData(functionFragment: "uniswapV3Adapter", values?: undefined): string;
    encodeFunctionData(functionFragment: "vault", values?: undefined): string;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "GUARDIAN", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MANAGER", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "adjustLeverage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "closePosition", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collateralToUnderlying", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "convexBooster", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "convexRewardPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "credAcc", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "creditFacade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "creditManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "curveAdapter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emergencyAction", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "farmRouter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAndUpdateTvl", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getDepositAmnt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLeverage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLpBalance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLpToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMaxTvl", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTotalAssets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTvl", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWithdrawAmnt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "harvest", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "harvestOwnTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "leverageFactor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "loanHealth", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "recieve", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setVault", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "underlying", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "uniswapV3Adapter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vault", data: BytesLike): Result;
    events: {
        "AdjustLeverage(uint256)": EventFragment;
        "Deposit(address,uint256)": EventFragment;
        "EmergencyAction(address,bytes)": EventFragment;
        "HarvestedToken(address,uint256,uint256)": EventFragment;
        "OwnershipTransferInitiated(address,address)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "Redeem(address,uint256)": EventFragment;
        "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
        "RoleGranted(bytes32,address,address)": EventFragment;
        "RoleRevoked(bytes32,address,address)": EventFragment;
        "SetVault(address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AdjustLeverage"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EmergencyAction"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "HarvestedToken"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferInitiated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Redeem"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetVault"): EventFragment;
}
export interface AdjustLeverageEventObject {
    newLeverage: BigNumber;
}
export type AdjustLeverageEvent = TypedEvent<[
    BigNumber
], AdjustLeverageEventObject>;
export type AdjustLeverageEventFilter = TypedEventFilter<AdjustLeverageEvent>;
export interface DepositEventObject {
    sender: string;
    amount: BigNumber;
}
export type DepositEvent = TypedEvent<[string, BigNumber], DepositEventObject>;
export type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface EmergencyActionEventObject {
    target: string;
    data: string;
}
export type EmergencyActionEvent = TypedEvent<[
    string,
    string
], EmergencyActionEventObject>;
export type EmergencyActionEventFilter = TypedEventFilter<EmergencyActionEvent>;
export interface HarvestedTokenEventObject {
    token: string;
    amount: BigNumber;
    amountUnderlying: BigNumber;
}
export type HarvestedTokenEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], HarvestedTokenEventObject>;
export type HarvestedTokenEventFilter = TypedEventFilter<HarvestedTokenEvent>;
export interface OwnershipTransferInitiatedEventObject {
    owner: string;
    pendingOwner: string;
}
export type OwnershipTransferInitiatedEvent = TypedEvent<[
    string,
    string
], OwnershipTransferInitiatedEventObject>;
export type OwnershipTransferInitiatedEventFilter = TypedEventFilter<OwnershipTransferInitiatedEvent>;
export interface OwnershipTransferredEventObject {
    oldOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface RedeemEventObject {
    sender: string;
    amount: BigNumber;
}
export type RedeemEvent = TypedEvent<[string, BigNumber], RedeemEventObject>;
export type RedeemEventFilter = TypedEventFilter<RedeemEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export type RoleAdminChangedEvent = TypedEvent<[
    string,
    string,
    string
], RoleAdminChangedEventObject>;
export type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export type RoleGrantedEvent = TypedEvent<[
    string,
    string,
    string
], RoleGrantedEventObject>;
export type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export type RoleRevokedEvent = TypedEvent<[
    string,
    string,
    string
], RoleRevokedEventObject>;
export type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface SetVaultEventObject {
    vault: string;
}
export type SetVaultEvent = TypedEvent<[string], SetVaultEventObject>;
export type SetVaultEventFilter = TypedEventFilter<SetVaultEvent>;
export interface LevConvexBase extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: LevConvexBaseInterface;
    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: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        GUARDIAN(overrides?: CallOverrides): Promise<[string]>;
        MANAGER(overrides?: CallOverrides): Promise<[string]>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        adjustLeverage(expectedTvl: PromiseOrValue<BigNumberish>, maxDelta: PromiseOrValue<BigNumberish>, newLeverage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closePosition(arg0: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        collateralToUnderlying(overrides?: CallOverrides): Promise<[BigNumber]>;
        convexBooster(overrides?: CallOverrides): Promise<[string]>;
        convexRewardPool(overrides?: CallOverrides): Promise<[string]>;
        credAcc(overrides?: CallOverrides): Promise<[string]>;
        creditFacade(overrides?: CallOverrides): Promise<[string]>;
        creditManager(overrides?: CallOverrides): Promise<[string]>;
        curveAdapter(overrides?: CallOverrides): Promise<[string]>;
        deposit(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emergencyAction(actions: EActionStruct[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        farmRouter(overrides?: CallOverrides): Promise<[string]>;
        getAndUpdateTvl(overrides?: CallOverrides): Promise<[BigNumber]>;
        getDepositAmnt(uAmnt: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getLeverage(overrides?: CallOverrides): Promise<[BigNumber]>;
        getLpBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        getLpToken(overrides?: CallOverrides): Promise<[string]>;
        getMaxTvl(overrides?: CallOverrides): Promise<[BigNumber]>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getTotalAssets(overrides?: CallOverrides): Promise<[BigNumber] & {
            totalAssets: BigNumber;
        }>;
        getTvl(overrides?: CallOverrides): Promise<[BigNumber]>;
        getWithdrawAmnt(lpTokens: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        harvest(swapParams: HarvestSwapParamsStruct[], arg1: HarvestSwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        harvestOwnTokens(swapParams: HarvestSwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        leverageFactor(overrides?: CallOverrides): Promise<[number]>;
        loanHealth(overrides?: CallOverrides): Promise<[BigNumber]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pendingOwner(overrides?: CallOverrides): Promise<[string]>;
        recieve(overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        redeem(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        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>;
        setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        transferOwnership(_pendingOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        underlying(overrides?: CallOverrides): Promise<[string]>;
        uniswapV3Adapter(overrides?: CallOverrides): Promise<[string]>;
        vault(overrides?: CallOverrides): Promise<[string]>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    GUARDIAN(overrides?: CallOverrides): Promise<string>;
    MANAGER(overrides?: CallOverrides): Promise<string>;
    acceptOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    adjustLeverage(expectedTvl: PromiseOrValue<BigNumberish>, maxDelta: PromiseOrValue<BigNumberish>, newLeverage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closePosition(arg0: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    collateralToUnderlying(overrides?: CallOverrides): Promise<BigNumber>;
    convexBooster(overrides?: CallOverrides): Promise<string>;
    convexRewardPool(overrides?: CallOverrides): Promise<string>;
    credAcc(overrides?: CallOverrides): Promise<string>;
    creditFacade(overrides?: CallOverrides): Promise<string>;
    creditManager(overrides?: CallOverrides): Promise<string>;
    curveAdapter(overrides?: CallOverrides): Promise<string>;
    deposit(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emergencyAction(actions: EActionStruct[], overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    farmRouter(overrides?: CallOverrides): Promise<string>;
    getAndUpdateTvl(overrides?: CallOverrides): Promise<BigNumber>;
    getDepositAmnt(uAmnt: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getLeverage(overrides?: CallOverrides): Promise<BigNumber>;
    getLpBalance(overrides?: CallOverrides): Promise<BigNumber>;
    getLpToken(overrides?: CallOverrides): Promise<string>;
    getMaxTvl(overrides?: CallOverrides): Promise<BigNumber>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getTotalAssets(overrides?: CallOverrides): Promise<BigNumber>;
    getTvl(overrides?: CallOverrides): Promise<BigNumber>;
    getWithdrawAmnt(lpTokens: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    harvest(swapParams: HarvestSwapParamsStruct[], arg1: HarvestSwapParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    harvestOwnTokens(swapParams: HarvestSwapParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    leverageFactor(overrides?: CallOverrides): Promise<number>;
    loanHealth(overrides?: CallOverrides): Promise<BigNumber>;
    owner(overrides?: CallOverrides): Promise<string>;
    pendingOwner(overrides?: CallOverrides): Promise<string>;
    recieve(overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    redeem(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    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>;
    setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    transferOwnership(_pendingOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    underlying(overrides?: CallOverrides): Promise<string>;
    uniswapV3Adapter(overrides?: CallOverrides): Promise<string>;
    vault(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        GUARDIAN(overrides?: CallOverrides): Promise<string>;
        MANAGER(overrides?: CallOverrides): Promise<string>;
        acceptOwnership(overrides?: CallOverrides): Promise<void>;
        adjustLeverage(expectedTvl: PromiseOrValue<BigNumberish>, maxDelta: PromiseOrValue<BigNumberish>, newLeverage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        closePosition(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        collateralToUnderlying(overrides?: CallOverrides): Promise<BigNumber>;
        convexBooster(overrides?: CallOverrides): Promise<string>;
        convexRewardPool(overrides?: CallOverrides): Promise<string>;
        credAcc(overrides?: CallOverrides): Promise<string>;
        creditFacade(overrides?: CallOverrides): Promise<string>;
        creditManager(overrides?: CallOverrides): Promise<string>;
        curveAdapter(overrides?: CallOverrides): Promise<string>;
        deposit(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        emergencyAction(actions: EActionStruct[], overrides?: CallOverrides): Promise<void>;
        farmRouter(overrides?: CallOverrides): Promise<string>;
        getAndUpdateTvl(overrides?: CallOverrides): Promise<BigNumber>;
        getDepositAmnt(uAmnt: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getLeverage(overrides?: CallOverrides): Promise<BigNumber>;
        getLpBalance(overrides?: CallOverrides): Promise<BigNumber>;
        getLpToken(overrides?: CallOverrides): Promise<string>;
        getMaxTvl(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getTotalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        getTvl(overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawAmnt(lpTokens: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        harvest(swapParams: HarvestSwapParamsStruct[], arg1: HarvestSwapParamsStruct[], overrides?: CallOverrides): Promise<[BigNumber[], BigNumber[]] & {
            amountsOut: BigNumber[];
        }>;
        harvestOwnTokens(swapParams: HarvestSwapParamsStruct[], overrides?: CallOverrides): Promise<[BigNumber[], BigNumber[]] & {
            amountsOut: BigNumber[];
        }>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        leverageFactor(overrides?: CallOverrides): Promise<number>;
        loanHealth(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        pendingOwner(overrides?: CallOverrides): Promise<string>;
        recieve(overrides?: CallOverrides): Promise<void>;
        redeem(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, 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>;
        setVault(_vault: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        transferOwnership(_pendingOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        underlying(overrides?: CallOverrides): Promise<string>;
        uniswapV3Adapter(overrides?: CallOverrides): Promise<string>;
        vault(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "AdjustLeverage(uint256)"(newLeverage?: null): AdjustLeverageEventFilter;
        AdjustLeverage(newLeverage?: null): AdjustLeverageEventFilter;
        "Deposit(address,uint256)"(sender?: null, amount?: null): DepositEventFilter;
        Deposit(sender?: null, amount?: null): DepositEventFilter;
        "EmergencyAction(address,bytes)"(target?: PromiseOrValue<string> | null, data?: null): EmergencyActionEventFilter;
        EmergencyAction(target?: PromiseOrValue<string> | null, data?: null): EmergencyActionEventFilter;
        "HarvestedToken(address,uint256,uint256)"(token?: null, amount?: null, amountUnderlying?: null): HarvestedTokenEventFilter;
        HarvestedToken(token?: null, amount?: null, amountUnderlying?: null): HarvestedTokenEventFilter;
        "OwnershipTransferInitiated(address,address)"(owner?: null, pendingOwner?: null): OwnershipTransferInitiatedEventFilter;
        OwnershipTransferInitiated(owner?: null, pendingOwner?: null): OwnershipTransferInitiatedEventFilter;
        "OwnershipTransferred(address,address)"(oldOwner?: null, newOwner?: null): OwnershipTransferredEventFilter;
        OwnershipTransferred(oldOwner?: null, newOwner?: null): OwnershipTransferredEventFilter;
        "Redeem(address,uint256)"(sender?: null, amount?: null): RedeemEventFilter;
        Redeem(sender?: null, amount?: null): RedeemEventFilter;
        "RoleAdminChanged(bytes32,bytes32,bytes32)"(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        "RoleGranted(bytes32,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(bytes32,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;
        "SetVault(address)"(vault?: PromiseOrValue<string> | null): SetVaultEventFilter;
        SetVault(vault?: PromiseOrValue<string> | null): SetVaultEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        GUARDIAN(overrides?: CallOverrides): Promise<BigNumber>;
        MANAGER(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        adjustLeverage(expectedTvl: PromiseOrValue<BigNumberish>, maxDelta: PromiseOrValue<BigNumberish>, newLeverage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closePosition(arg0: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        collateralToUnderlying(overrides?: CallOverrides): Promise<BigNumber>;
        convexBooster(overrides?: CallOverrides): Promise<BigNumber>;
        convexRewardPool(overrides?: CallOverrides): Promise<BigNumber>;
        credAcc(overrides?: CallOverrides): Promise<BigNumber>;
        creditFacade(overrides?: CallOverrides): Promise<BigNumber>;
        creditManager(overrides?: CallOverrides): Promise<BigNumber>;
        curveAdapter(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emergencyAction(actions: EActionStruct[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        farmRouter(overrides?: CallOverrides): Promise<BigNumber>;
        getAndUpdateTvl(overrides?: CallOverrides): Promise<BigNumber>;
        getDepositAmnt(uAmnt: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getLeverage(overrides?: CallOverrides): Promise<BigNumber>;
        getLpBalance(overrides?: CallOverrides): Promise<BigNumber>;
        getLpToken(overrides?: CallOverrides): Promise<BigNumber>;
        getMaxTvl(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        getTvl(overrides?: CallOverrides): Promise<BigNumber>;
        getWithdrawAmnt(lpTokens: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        harvest(swapParams: HarvestSwapParamsStruct[], arg1: HarvestSwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        harvestOwnTokens(swapParams: HarvestSwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        leverageFactor(overrides?: CallOverrides): Promise<BigNumber>;
        loanHealth(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
        recieve(overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        redeem(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): 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>;
        setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(_pendingOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        underlying(overrides?: CallOverrides): Promise<BigNumber>;
        uniswapV3Adapter(overrides?: CallOverrides): Promise<BigNumber>;
        vault(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GUARDIAN(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MANAGER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        adjustLeverage(expectedTvl: PromiseOrValue<BigNumberish>, maxDelta: PromiseOrValue<BigNumberish>, newLeverage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closePosition(arg0: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        collateralToUnderlying(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convexBooster(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convexRewardPool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        credAcc(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        creditFacade(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        creditManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        curveAdapter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emergencyAction(actions: EActionStruct[], overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        farmRouter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAndUpdateTvl(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDepositAmnt(uAmnt: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLeverage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLpBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLpToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMaxTvl(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTvl(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWithdrawAmnt(lpTokens: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        harvest(swapParams: HarvestSwapParamsStruct[], arg1: HarvestSwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        harvestOwnTokens(swapParams: HarvestSwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        leverageFactor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        loanHealth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        recieve(overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        redeem(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): 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>;
        setVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(_pendingOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        underlying(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        uniswapV3Adapter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vault(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
