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 } from "./common";
export interface AladdinConcentratorLegacyVaultInterface extends utils.Interface {
    functions: {
        "addPool(uint256,address[],uint256,uint256,uint256)": FunctionFragment;
        "aladdinCRV()": FunctionFragment;
        "claim(uint256,uint256,uint8)": FunctionFragment;
        "claimAll(uint256,uint8)": FunctionFragment;
        "deposit(uint256,uint256)": FunctionFragment;
        "depositAll(uint256)": FunctionFragment;
        "harvest(uint256,address,uint256)": FunctionFragment;
        "initialize(address,address,address)": FunctionFragment;
        "owner()": FunctionFragment;
        "pausePoolDeposit(uint256,bool)": FunctionFragment;
        "pausePoolWithdraw(uint256,bool)": FunctionFragment;
        "pendingReward(uint256,address)": FunctionFragment;
        "pendingRewardAll(address)": FunctionFragment;
        "platform()": FunctionFragment;
        "poolInfo(uint256)": FunctionFragment;
        "poolLength()": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "updateHarvestBountyPercentage(uint256,uint256)": FunctionFragment;
        "updatePlatform(address)": FunctionFragment;
        "updatePlatformFeePercentage(uint256,uint256)": FunctionFragment;
        "updatePoolRewardTokens(uint256,address[])": FunctionFragment;
        "updateWithdrawFeePercentage(uint256,uint256)": FunctionFragment;
        "updateZap(address)": FunctionFragment;
        "userInfo(uint256,address)": FunctionFragment;
        "withdrawAllAndClaim(uint256,uint256,uint8)": FunctionFragment;
        "withdrawAllAndZap(uint256,address,uint256)": FunctionFragment;
        "withdrawAndClaim(uint256,uint256,uint256,uint8)": FunctionFragment;
        "withdrawAndZap(uint256,uint256,address,uint256)": FunctionFragment;
        "zap()": FunctionFragment;
        "zapAllAndDeposit(uint256,address,uint256)": FunctionFragment;
        "zapAndDeposit(uint256,address,uint256,uint256)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "addPool" | "aladdinCRV" | "claim" | "claimAll" | "deposit" | "depositAll" | "harvest" | "initialize" | "owner" | "pausePoolDeposit" | "pausePoolWithdraw" | "pendingReward" | "pendingRewardAll" | "platform" | "poolInfo" | "poolLength" | "renounceOwnership" | "transferOwnership" | "updateHarvestBountyPercentage" | "updatePlatform" | "updatePlatformFeePercentage" | "updatePoolRewardTokens" | "updateWithdrawFeePercentage" | "updateZap" | "userInfo" | "withdrawAllAndClaim" | "withdrawAllAndZap" | "withdrawAndClaim" | "withdrawAndZap" | "zap" | "zapAllAndDeposit" | "zapAndDeposit"): FunctionFragment;
    encodeFunctionData(functionFragment: "addPool", values: [BigNumberish, string[], BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "aladdinCRV", values?: undefined): string;
    encodeFunctionData(functionFragment: "claim", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "claimAll", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "deposit", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "depositAll", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "harvest", values: [BigNumberish, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "initialize", values: [string, string, string]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pausePoolDeposit", values: [BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "pausePoolWithdraw", values: [BigNumberish, boolean]): string;
    encodeFunctionData(functionFragment: "pendingReward", values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: "pendingRewardAll", values: [string]): string;
    encodeFunctionData(functionFragment: "platform", values?: undefined): string;
    encodeFunctionData(functionFragment: "poolInfo", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "poolLength", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
    encodeFunctionData(functionFragment: "updateHarvestBountyPercentage", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "updatePlatform", values: [string]): string;
    encodeFunctionData(functionFragment: "updatePlatformFeePercentage", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "updatePoolRewardTokens", values: [BigNumberish, string[]]): string;
    encodeFunctionData(functionFragment: "updateWithdrawFeePercentage", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateZap", values: [string]): string;
    encodeFunctionData(functionFragment: "userInfo", values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: "withdrawAllAndClaim", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdrawAllAndZap", values: [BigNumberish, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdrawAndClaim", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdrawAndZap", values: [BigNumberish, BigNumberish, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "zap", values?: undefined): string;
    encodeFunctionData(functionFragment: "zapAllAndDeposit", values: [BigNumberish, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "zapAndDeposit", values: [BigNumberish, string, BigNumberish, BigNumberish]): string;
    decodeFunctionResult(functionFragment: "addPool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "aladdinCRV", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimAll", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositAll", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "harvest", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pausePoolDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pausePoolWithdraw", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingReward", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingRewardAll", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platform", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolLength", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateHarvestBountyPercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePlatform", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePlatformFeePercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePoolRewardTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateWithdrawFeePercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateZap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawAllAndClaim", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawAllAndZap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawAndClaim", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawAndZap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "zap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "zapAllAndDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "zapAndDeposit", data: BytesLike): Result;
    events: {
        "AddPool(uint256,uint256,address[])": EventFragment;
        "Claim(address,uint256,uint8)": EventFragment;
        "Deposit(uint256,address,uint256)": EventFragment;
        "Harvest(address,uint256,uint256,uint256)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "PausePoolDeposit(uint256,bool)": EventFragment;
        "PausePoolWithdraw(uint256,bool)": EventFragment;
        "UpdateHarvestBountyPercentage(uint256,uint256)": EventFragment;
        "UpdatePlatform(address)": EventFragment;
        "UpdatePlatformFeePercentage(uint256,uint256)": EventFragment;
        "UpdatePoolRewardTokens(uint256,address[])": EventFragment;
        "UpdateWithdrawalFeePercentage(uint256,uint256)": EventFragment;
        "UpdateZap(address)": EventFragment;
        "Withdraw(uint256,address,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AddPool"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Claim"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Harvest"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PausePoolDeposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PausePoolWithdraw"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdateHarvestBountyPercentage"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdatePlatform"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdatePlatformFeePercentage"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdatePoolRewardTokens"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdateWithdrawalFeePercentage"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdateZap"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment;
}
export interface AddPoolEventObject {
    _pid: BigNumber;
    _convexPid: BigNumber;
    _rewardTokens: string[];
}
export declare type AddPoolEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    string[]
], AddPoolEventObject>;
export declare type AddPoolEventFilter = TypedEventFilter<AddPoolEvent>;
export interface ClaimEventObject {
    _sender: string;
    _reward: BigNumber;
    _option: number;
}
export declare type ClaimEvent = TypedEvent<[
    string,
    BigNumber,
    number
], ClaimEventObject>;
export declare type ClaimEventFilter = TypedEventFilter<ClaimEvent>;
export interface DepositEventObject {
    _pid: BigNumber;
    _sender: string;
    _amount: BigNumber;
}
export declare type DepositEvent = TypedEvent<[
    BigNumber,
    string,
    BigNumber
], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface HarvestEventObject {
    _caller: string;
    _reward: BigNumber;
    _platformFee: BigNumber;
    _harvestBounty: BigNumber;
}
export declare type HarvestEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], HarvestEventObject>;
export declare type HarvestEventFilter = TypedEventFilter<HarvestEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface PausePoolDepositEventObject {
    _pid: BigNumber;
    _status: boolean;
}
export declare type PausePoolDepositEvent = TypedEvent<[
    BigNumber,
    boolean
], PausePoolDepositEventObject>;
export declare type PausePoolDepositEventFilter = TypedEventFilter<PausePoolDepositEvent>;
export interface PausePoolWithdrawEventObject {
    _pid: BigNumber;
    _status: boolean;
}
export declare type PausePoolWithdrawEvent = TypedEvent<[
    BigNumber,
    boolean
], PausePoolWithdrawEventObject>;
export declare type PausePoolWithdrawEventFilter = TypedEventFilter<PausePoolWithdrawEvent>;
export interface UpdateHarvestBountyPercentageEventObject {
    _pid: BigNumber;
    _percentage: BigNumber;
}
export declare type UpdateHarvestBountyPercentageEvent = TypedEvent<[
    BigNumber,
    BigNumber
], UpdateHarvestBountyPercentageEventObject>;
export declare type UpdateHarvestBountyPercentageEventFilter = TypedEventFilter<UpdateHarvestBountyPercentageEvent>;
export interface UpdatePlatformEventObject {
    _platform: string;
}
export declare type UpdatePlatformEvent = TypedEvent<[
    string
], UpdatePlatformEventObject>;
export declare type UpdatePlatformEventFilter = TypedEventFilter<UpdatePlatformEvent>;
export interface UpdatePlatformFeePercentageEventObject {
    _pid: BigNumber;
    _feePercentage: BigNumber;
}
export declare type UpdatePlatformFeePercentageEvent = TypedEvent<[
    BigNumber,
    BigNumber
], UpdatePlatformFeePercentageEventObject>;
export declare type UpdatePlatformFeePercentageEventFilter = TypedEventFilter<UpdatePlatformFeePercentageEvent>;
export interface UpdatePoolRewardTokensEventObject {
    _pid: BigNumber;
    _rewardTokens: string[];
}
export declare type UpdatePoolRewardTokensEvent = TypedEvent<[
    BigNumber,
    string[]
], UpdatePoolRewardTokensEventObject>;
export declare type UpdatePoolRewardTokensEventFilter = TypedEventFilter<UpdatePoolRewardTokensEvent>;
export interface UpdateWithdrawalFeePercentageEventObject {
    _pid: BigNumber;
    _feePercentage: BigNumber;
}
export declare type UpdateWithdrawalFeePercentageEvent = TypedEvent<[
    BigNumber,
    BigNumber
], UpdateWithdrawalFeePercentageEventObject>;
export declare type UpdateWithdrawalFeePercentageEventFilter = TypedEventFilter<UpdateWithdrawalFeePercentageEvent>;
export interface UpdateZapEventObject {
    _zap: string;
}
export declare type UpdateZapEvent = TypedEvent<[string], UpdateZapEventObject>;
export declare type UpdateZapEventFilter = TypedEventFilter<UpdateZapEvent>;
export interface WithdrawEventObject {
    _pid: BigNumber;
    _sender: string;
    _shares: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[
    BigNumber,
    string,
    BigNumber
], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface AladdinConcentratorLegacyVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AladdinConcentratorLegacyVaultInterface;
    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: {
        addPool(_convexPid: BigNumberish, _rewardTokens: string[], _withdrawFeePercentage: BigNumberish, _platformFeePercentage: BigNumberish, _harvestBountyPercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        aladdinCRV(overrides?: CallOverrides): Promise<[string]>;
        claim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        claimAll(_minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        deposit(_pid: BigNumberish, _amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        depositAll(_pid: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        harvest(_pid: BigNumberish, _recipient: string, _minimumOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        initialize(_aladdinCRV: string, _zap: string, _platform: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pausePoolDeposit(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        pausePoolWithdraw(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        pendingReward(_pid: BigNumberish, _account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        pendingRewardAll(_account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        platform(overrides?: CallOverrides): Promise<[string]>;
        poolInfo(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            string,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean,
            boolean
        ] & {
            totalUnderlying: BigNumber;
            totalShare: BigNumber;
            accRewardPerShare: BigNumber;
            convexPoolId: BigNumber;
            lpToken: string;
            crvRewards: string;
            withdrawFeePercentage: BigNumber;
            platformFeePercentage: BigNumber;
            harvestBountyPercentage: BigNumber;
            pauseDeposit: boolean;
            pauseWithdraw: boolean;
        }>;
        poolLength(overrides?: CallOverrides): Promise<[BigNumber] & {
            pools: BigNumber;
        }>;
        renounceOwnership(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        updateHarvestBountyPercentage(_pid: BigNumberish, _percentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        updatePlatform(_platform: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        updatePlatformFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        updatePoolRewardTokens(_pid: BigNumberish, _rewardTokens: string[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        updateWithdrawFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        updateZap(_zap: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        userInfo(arg0: BigNumberish, arg1: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            shares: BigNumber;
            rewards: BigNumber;
            rewardPerSharePaid: BigNumber;
        }>;
        withdrawAllAndClaim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        withdrawAllAndZap(_pid: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        withdrawAndClaim(_pid: BigNumberish, _shares: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        withdrawAndZap(_pid: BigNumberish, _shares: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        zap(overrides?: CallOverrides): Promise<[string]>;
        zapAllAndDeposit(_pid: BigNumberish, _token: string, _minAmount: BigNumberish, overrides?: PayableOverrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        zapAndDeposit(_pid: BigNumberish, _token: string, _amount: BigNumberish, _minAmount: BigNumberish, overrides?: PayableOverrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
    };
    addPool(_convexPid: BigNumberish, _rewardTokens: string[], _withdrawFeePercentage: BigNumberish, _platformFeePercentage: BigNumberish, _harvestBountyPercentage: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    aladdinCRV(overrides?: CallOverrides): Promise<string>;
    claim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    claimAll(_minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    deposit(_pid: BigNumberish, _amount: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    depositAll(_pid: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    harvest(_pid: BigNumberish, _recipient: string, _minimumOut: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    initialize(_aladdinCRV: string, _zap: string, _platform: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    pausePoolDeposit(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    pausePoolWithdraw(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    pendingReward(_pid: BigNumberish, _account: string, overrides?: CallOverrides): Promise<BigNumber>;
    pendingRewardAll(_account: string, overrides?: CallOverrides): Promise<BigNumber>;
    platform(overrides?: CallOverrides): Promise<string>;
    poolInfo(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        string,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        boolean,
        boolean
    ] & {
        totalUnderlying: BigNumber;
        totalShare: BigNumber;
        accRewardPerShare: BigNumber;
        convexPoolId: BigNumber;
        lpToken: string;
        crvRewards: string;
        withdrawFeePercentage: BigNumber;
        platformFeePercentage: BigNumber;
        harvestBountyPercentage: BigNumber;
        pauseDeposit: boolean;
        pauseWithdraw: boolean;
    }>;
    poolLength(overrides?: CallOverrides): Promise<BigNumber>;
    renounceOwnership(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    updateHarvestBountyPercentage(_pid: BigNumberish, _percentage: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    updatePlatform(_platform: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    updatePlatformFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    updatePoolRewardTokens(_pid: BigNumberish, _rewardTokens: string[], overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    updateWithdrawFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    updateZap(_zap: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    userInfo(arg0: BigNumberish, arg1: string, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        shares: BigNumber;
        rewards: BigNumber;
        rewardPerSharePaid: BigNumber;
    }>;
    withdrawAllAndClaim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    withdrawAllAndZap(_pid: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    withdrawAndClaim(_pid: BigNumberish, _shares: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    withdrawAndZap(_pid: BigNumberish, _shares: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    zap(overrides?: CallOverrides): Promise<string>;
    zapAllAndDeposit(_pid: BigNumberish, _token: string, _minAmount: BigNumberish, overrides?: PayableOverrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    zapAndDeposit(_pid: BigNumberish, _token: string, _amount: BigNumberish, _minAmount: BigNumberish, overrides?: PayableOverrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        addPool(_convexPid: BigNumberish, _rewardTokens: string[], _withdrawFeePercentage: BigNumberish, _platformFeePercentage: BigNumberish, _harvestBountyPercentage: BigNumberish, overrides?: CallOverrides): Promise<void>;
        aladdinCRV(overrides?: CallOverrides): Promise<string>;
        claim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        claimAll(_minOut: BigNumberish, _option: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_pid: BigNumberish, _amount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        depositAll(_pid: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        harvest(_pid: BigNumberish, _recipient: string, _minimumOut: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_aladdinCRV: string, _zap: string, _platform: string, overrides?: CallOverrides): Promise<void>;
        owner(overrides?: CallOverrides): Promise<string>;
        pausePoolDeposit(_pid: BigNumberish, _status: boolean, overrides?: CallOverrides): Promise<void>;
        pausePoolWithdraw(_pid: BigNumberish, _status: boolean, overrides?: CallOverrides): Promise<void>;
        pendingReward(_pid: BigNumberish, _account: string, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardAll(_account: string, overrides?: CallOverrides): Promise<BigNumber>;
        platform(overrides?: CallOverrides): Promise<string>;
        poolInfo(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            string,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            boolean,
            boolean
        ] & {
            totalUnderlying: BigNumber;
            totalShare: BigNumber;
            accRewardPerShare: BigNumber;
            convexPoolId: BigNumber;
            lpToken: string;
            crvRewards: string;
            withdrawFeePercentage: BigNumber;
            platformFeePercentage: BigNumber;
            harvestBountyPercentage: BigNumber;
            pauseDeposit: boolean;
            pauseWithdraw: boolean;
        }>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        transferOwnership(newOwner: string, overrides?: CallOverrides): Promise<void>;
        updateHarvestBountyPercentage(_pid: BigNumberish, _percentage: BigNumberish, overrides?: CallOverrides): Promise<void>;
        updatePlatform(_platform: string, overrides?: CallOverrides): Promise<void>;
        updatePlatformFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: CallOverrides): Promise<void>;
        updatePoolRewardTokens(_pid: BigNumberish, _rewardTokens: string[], overrides?: CallOverrides): Promise<void>;
        updateWithdrawFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: CallOverrides): Promise<void>;
        updateZap(_zap: string, overrides?: CallOverrides): Promise<void>;
        userInfo(arg0: BigNumberish, arg1: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            shares: BigNumber;
            rewards: BigNumber;
            rewardPerSharePaid: BigNumber;
        }>;
        withdrawAllAndClaim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            withdrawn: BigNumber;
            claimed: BigNumber;
        }>;
        withdrawAllAndZap(_pid: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawAndClaim(_pid: BigNumberish, _shares: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            withdrawn: BigNumber;
            claimed: BigNumber;
        }>;
        withdrawAndZap(_pid: BigNumberish, _shares: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        zap(overrides?: CallOverrides): Promise<string>;
        zapAllAndDeposit(_pid: BigNumberish, _token: string, _minAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        zapAndDeposit(_pid: BigNumberish, _token: string, _amount: BigNumberish, _minAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        "AddPool(uint256,uint256,address[])"(_pid?: BigNumberish | null, _convexPid?: null, _rewardTokens?: null): AddPoolEventFilter;
        AddPool(_pid?: BigNumberish | null, _convexPid?: null, _rewardTokens?: null): AddPoolEventFilter;
        "Claim(address,uint256,uint8)"(_sender?: string | null, _reward?: null, _option?: null): ClaimEventFilter;
        Claim(_sender?: string | null, _reward?: null, _option?: null): ClaimEventFilter;
        "Deposit(uint256,address,uint256)"(_pid?: BigNumberish | null, _sender?: string | null, _amount?: null): DepositEventFilter;
        Deposit(_pid?: BigNumberish | null, _sender?: string | null, _amount?: null): DepositEventFilter;
        "Harvest(address,uint256,uint256,uint256)"(_caller?: string | null, _reward?: null, _platformFee?: null, _harvestBounty?: null): HarvestEventFilter;
        Harvest(_caller?: string | null, _reward?: null, _platformFee?: null, _harvestBounty?: null): HarvestEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        "PausePoolDeposit(uint256,bool)"(_pid?: BigNumberish | null, _status?: null): PausePoolDepositEventFilter;
        PausePoolDeposit(_pid?: BigNumberish | null, _status?: null): PausePoolDepositEventFilter;
        "PausePoolWithdraw(uint256,bool)"(_pid?: BigNumberish | null, _status?: null): PausePoolWithdrawEventFilter;
        PausePoolWithdraw(_pid?: BigNumberish | null, _status?: null): PausePoolWithdrawEventFilter;
        "UpdateHarvestBountyPercentage(uint256,uint256)"(_pid?: BigNumberish | null, _percentage?: null): UpdateHarvestBountyPercentageEventFilter;
        UpdateHarvestBountyPercentage(_pid?: BigNumberish | null, _percentage?: null): UpdateHarvestBountyPercentageEventFilter;
        "UpdatePlatform(address)"(_platform?: string | null): UpdatePlatformEventFilter;
        UpdatePlatform(_platform?: string | null): UpdatePlatformEventFilter;
        "UpdatePlatformFeePercentage(uint256,uint256)"(_pid?: BigNumberish | null, _feePercentage?: null): UpdatePlatformFeePercentageEventFilter;
        UpdatePlatformFeePercentage(_pid?: BigNumberish | null, _feePercentage?: null): UpdatePlatformFeePercentageEventFilter;
        "UpdatePoolRewardTokens(uint256,address[])"(_pid?: BigNumberish | null, _rewardTokens?: null): UpdatePoolRewardTokensEventFilter;
        UpdatePoolRewardTokens(_pid?: BigNumberish | null, _rewardTokens?: null): UpdatePoolRewardTokensEventFilter;
        "UpdateWithdrawalFeePercentage(uint256,uint256)"(_pid?: BigNumberish | null, _feePercentage?: null): UpdateWithdrawalFeePercentageEventFilter;
        UpdateWithdrawalFeePercentage(_pid?: BigNumberish | null, _feePercentage?: null): UpdateWithdrawalFeePercentageEventFilter;
        "UpdateZap(address)"(_zap?: string | null): UpdateZapEventFilter;
        UpdateZap(_zap?: string | null): UpdateZapEventFilter;
        "Withdraw(uint256,address,uint256)"(_pid?: BigNumberish | null, _sender?: string | null, _shares?: null): WithdrawEventFilter;
        Withdraw(_pid?: BigNumberish | null, _sender?: string | null, _shares?: null): WithdrawEventFilter;
    };
    estimateGas: {
        addPool(_convexPid: BigNumberish, _rewardTokens: string[], _withdrawFeePercentage: BigNumberish, _platformFeePercentage: BigNumberish, _harvestBountyPercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        aladdinCRV(overrides?: CallOverrides): Promise<BigNumber>;
        claim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        claimAll(_minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        deposit(_pid: BigNumberish, _amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        depositAll(_pid: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        harvest(_pid: BigNumberish, _recipient: string, _minimumOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        initialize(_aladdinCRV: string, _zap: string, _platform: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pausePoolDeposit(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        pausePoolWithdraw(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        pendingReward(_pid: BigNumberish, _account: string, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardAll(_account: string, overrides?: CallOverrides): Promise<BigNumber>;
        platform(overrides?: CallOverrides): Promise<BigNumber>;
        poolInfo(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        updateHarvestBountyPercentage(_pid: BigNumberish, _percentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        updatePlatform(_platform: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        updatePlatformFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        updatePoolRewardTokens(_pid: BigNumberish, _rewardTokens: string[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        updateWithdrawFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        updateZap(_zap: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        userInfo(arg0: BigNumberish, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawAllAndClaim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        withdrawAllAndZap(_pid: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        withdrawAndClaim(_pid: BigNumberish, _shares: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        withdrawAndZap(_pid: BigNumberish, _shares: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        zap(overrides?: CallOverrides): Promise<BigNumber>;
        zapAllAndDeposit(_pid: BigNumberish, _token: string, _minAmount: BigNumberish, overrides?: PayableOverrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        zapAndDeposit(_pid: BigNumberish, _token: string, _amount: BigNumberish, _minAmount: BigNumberish, overrides?: PayableOverrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        addPool(_convexPid: BigNumberish, _rewardTokens: string[], _withdrawFeePercentage: BigNumberish, _platformFeePercentage: BigNumberish, _harvestBountyPercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        aladdinCRV(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        claimAll(_minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        deposit(_pid: BigNumberish, _amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        depositAll(_pid: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        harvest(_pid: BigNumberish, _recipient: string, _minimumOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_aladdinCRV: string, _zap: string, _platform: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pausePoolDeposit(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        pausePoolWithdraw(_pid: BigNumberish, _status: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        pendingReward(_pid: BigNumberish, _account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingRewardAll(_account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platform(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolInfo(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        updateHarvestBountyPercentage(_pid: BigNumberish, _percentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        updatePlatform(_platform: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        updatePlatformFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        updatePoolRewardTokens(_pid: BigNumberish, _rewardTokens: string[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        updateWithdrawFeePercentage(_pid: BigNumberish, _feePercentage: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        updateZap(_zap: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        userInfo(arg0: BigNumberish, arg1: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawAllAndClaim(_pid: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAllAndZap(_pid: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAndClaim(_pid: BigNumberish, _shares: BigNumberish, _minOut: BigNumberish, _option: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAndZap(_pid: BigNumberish, _shares: BigNumberish, _token: string, _minOut: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        zap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        zapAllAndDeposit(_pid: BigNumberish, _token: string, _minAmount: BigNumberish, overrides?: PayableOverrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        zapAndDeposit(_pid: BigNumberish, _token: string, _amount: BigNumberish, _minAmount: BigNumberish, overrides?: PayableOverrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
    };
}
