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 ConcentratorGeneralVault {
    type PoolSupplyInfoStruct = {
        totalUnderlying: PromiseOrValue<BigNumberish>;
        totalShare: PromiseOrValue<BigNumberish>;
    };
    type PoolSupplyInfoStructOutput = [BigNumber, BigNumber] & {
        totalUnderlying: BigNumber;
        totalShare: BigNumber;
    };
    type PoolStrategyInfoStruct = {
        token: PromiseOrValue<string>;
        strategy: PromiseOrValue<string>;
        pauseDeposit: PromiseOrValue<boolean>;
        pauseWithdraw: PromiseOrValue<boolean>;
    };
    type PoolStrategyInfoStructOutput = [string, string, boolean, boolean] & {
        token: string;
        strategy: string;
        pauseDeposit: boolean;
        pauseWithdraw: boolean;
    };
    type PoolRewardInfoStruct = {
        rate: PromiseOrValue<BigNumberish>;
        periodLength: PromiseOrValue<BigNumberish>;
        lastUpdate: PromiseOrValue<BigNumberish>;
        finishAt: PromiseOrValue<BigNumberish>;
        accRewardPerShare: PromiseOrValue<BigNumberish>;
    };
    type PoolRewardInfoStructOutput = [BigNumber, number, number, number, BigNumber] & {
        rate: BigNumber;
        periodLength: number;
        lastUpdate: number;
        finishAt: number;
        accRewardPerShare: BigNumber;
    };
    type PoolFeeInfoStruct = {
        withdrawFeeRatio: PromiseOrValue<BigNumberish>;
        platformFeeRatio: PromiseOrValue<BigNumberish>;
        harvestBountyRatio: PromiseOrValue<BigNumberish>;
        reserved: PromiseOrValue<BigNumberish>;
    };
    type PoolFeeInfoStructOutput = [number, number, number, BigNumber] & {
        withdrawFeeRatio: number;
        platformFeeRatio: number;
        harvestBountyRatio: number;
        reserved: BigNumber;
    };
}
export interface AladdinConcentratorAfrxEthVaultInterface extends utils.Interface {
    functions: {
        'addPool(address,address,uint32,uint32,uint32)': FunctionFragment;
        'allowance(uint256,address,address)': FunctionFragment;
        'approve(uint256,address,uint256)': FunctionFragment;
        'checkpoint(uint256,address)': FunctionFragment;
        'claim(uint256,address,uint256,address)': FunctionFragment;
        'claimAll(uint256,address,address)': FunctionFragment;
        'claimMulti(uint256[],address,uint256,address)': FunctionFragment;
        'deposit(uint256,address,uint256)': FunctionFragment;
        'getFeeRate(bytes32,address)': FunctionFragment;
        'getTotalShare(uint256)': FunctionFragment;
        'getTotalUnderlying(uint256)': FunctionFragment;
        'getUserShare(uint256,address)': FunctionFragment;
        'harvest(uint256,address,uint256)': FunctionFragment;
        'initialize(address,address,address)': FunctionFragment;
        'migrateStrategy(uint256,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;
        'rewardToken()': FunctionFragment;
        'setWithdrawFeeForUser(uint256,address,uint32)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'underlying(uint256)': FunctionFragment;
        'updatePlatform(address)': FunctionFragment;
        'updatePoolFeeRatio(uint256,uint32,uint32,uint32)': FunctionFragment;
        'updatePoolRewardTokens(uint256,address[])': FunctionFragment;
        'updateRewardPeriod(uint256,uint32)': FunctionFragment;
        'updateZap(address)': FunctionFragment;
        'userInfo(uint256,address)': FunctionFragment;
        'withdraw(uint256,uint256,address,address)': FunctionFragment;
        'zap()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'addPool' | 'allowance' | 'approve' | 'checkpoint' | 'claim' | 'claimAll' | 'claimMulti' | 'deposit' | 'getFeeRate' | 'getTotalShare' | 'getTotalUnderlying' | 'getUserShare' | 'harvest' | 'initialize' | 'migrateStrategy' | 'owner' | 'pausePoolDeposit' | 'pausePoolWithdraw' | 'pendingReward' | 'pendingRewardAll' | 'platform' | 'poolInfo' | 'poolLength' | 'renounceOwnership' | 'rewardToken' | 'setWithdrawFeeForUser' | 'transferOwnership' | 'underlying' | 'updatePlatform' | 'updatePoolFeeRatio' | 'updatePoolRewardTokens' | 'updateRewardPeriod' | 'updateZap' | 'userInfo' | 'withdraw' | 'zap'): FunctionFragment;
    encodeFunctionData(functionFragment: 'addPool', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'checkpoint', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claim', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'claimAll', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimMulti', values: [
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getFeeRate', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getTotalShare', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getTotalUnderlying', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getUserShare', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'harvest', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'migrateStrategy', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pausePoolDeposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'pausePoolWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'pendingReward', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'pendingRewardAll', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'platform', values?: undefined): string;
    encodeFunctionData(functionFragment: 'poolInfo', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'poolLength', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setWithdrawFeeForUser', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'underlying', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updatePlatform', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updatePoolFeeRatio', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'updatePoolRewardTokens', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'updateRewardPeriod', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateZap', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'userInfo', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'zap', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'addPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkpoint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claim', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimMulti', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFeeRate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalShare', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserShare', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'harvest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrateStrategy', 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: 'rewardToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setWithdrawFeeForUser', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'underlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updatePlatform', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updatePoolFeeRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updatePoolRewardTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateRewardPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateZap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'zap', data: BytesLike): Result;
    events: {
        'AddPool(uint256,address,address)': EventFragment;
        'Approval(uint256,address,address,uint256)': EventFragment;
        'CancleCustomizeFee(bytes32,address)': EventFragment;
        'Claim(uint256,address,address,uint256)': EventFragment;
        'CustomizeFee(bytes32,address,uint256)': EventFragment;
        'Deposit(uint256,address,address,uint256,uint256)': EventFragment;
        'Harvest(uint256,address,address,uint256,uint256,uint256)': EventFragment;
        'Migrate(uint256,address,address)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'PausePoolDeposit(uint256,bool)': EventFragment;
        'PausePoolWithdraw(uint256,bool)': EventFragment;
        'UpdatePlatform(address)': EventFragment;
        'UpdatePoolFeeRatio(uint256,uint32,uint32,uint32)': EventFragment;
        'UpdatePoolRewardTokens(uint256,address[])': EventFragment;
        'UpdateRewardPeriod(uint256,uint32)': EventFragment;
        'UpdateZap(address)': EventFragment;
        'Withdraw(uint256,address,address,address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AddPool'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CancleCustomizeFee'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Claim'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CustomizeFee'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Harvest'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Migrate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PausePoolDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PausePoolWithdraw'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdatePlatform'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdatePoolFeeRatio'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdatePoolRewardTokens'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateRewardPeriod'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateZap'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
}
export interface AddPoolEventObject {
    _pid: BigNumber;
    _underlying: string;
    _strategy: string;
}
export declare type AddPoolEvent = TypedEvent<[BigNumber, string, string], AddPoolEventObject>;
export declare type AddPoolEventFilter = TypedEventFilter<AddPoolEvent>;
export interface ApprovalEventObject {
    pid: BigNumber;
    owner: string;
    spender: string;
    value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[BigNumber, string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface CancleCustomizeFeeEventObject {
    _feeType: string;
    _user: string;
}
export declare type CancleCustomizeFeeEvent = TypedEvent<[string, string], CancleCustomizeFeeEventObject>;
export declare type CancleCustomizeFeeEventFilter = TypedEventFilter<CancleCustomizeFeeEvent>;
export interface ClaimEventObject {
    pid: BigNumber;
    sender: string;
    recipient: string;
    rewards: BigNumber;
}
export declare type ClaimEvent = TypedEvent<[BigNumber, string, string, BigNumber], ClaimEventObject>;
export declare type ClaimEventFilter = TypedEventFilter<ClaimEvent>;
export interface CustomizeFeeEventObject {
    _feeType: string;
    _user: string;
    _rate: BigNumber;
}
export declare type CustomizeFeeEvent = TypedEvent<[string, string, BigNumber], CustomizeFeeEventObject>;
export declare type CustomizeFeeEventFilter = TypedEventFilter<CustomizeFeeEvent>;
export interface DepositEventObject {
    pid: BigNumber;
    sender: string;
    recipient: string;
    assetsIn: BigNumber;
    sharesOut: BigNumber;
}
export declare type DepositEvent = TypedEvent<[BigNumber, string, string, BigNumber, BigNumber], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface HarvestEventObject {
    pid: BigNumber;
    caller: string;
    recipient: string;
    rewards: BigNumber;
    platformFee: BigNumber;
    harvestBounty: BigNumber;
}
export declare type HarvestEvent = TypedEvent<[BigNumber, string, string, BigNumber, BigNumber, BigNumber], HarvestEventObject>;
export declare type HarvestEventFilter = TypedEventFilter<HarvestEvent>;
export interface MigrateEventObject {
    _pid: BigNumber;
    _oldStrategy: string;
    _newStrategy: string;
}
export declare type MigrateEvent = TypedEvent<[BigNumber, string, string], MigrateEventObject>;
export declare type MigrateEventFilter = TypedEventFilter<MigrateEvent>;
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 UpdatePlatformEventObject {
    _platform: string;
}
export declare type UpdatePlatformEvent = TypedEvent<[string], UpdatePlatformEventObject>;
export declare type UpdatePlatformEventFilter = TypedEventFilter<UpdatePlatformEvent>;
export interface UpdatePoolFeeRatioEventObject {
    _pid: BigNumber;
    _withdrawFeeRatio: number;
    _platformFeeRatio: number;
    _harvestBountyRatio: number;
}
export declare type UpdatePoolFeeRatioEvent = TypedEvent<[BigNumber, number, number, number], UpdatePoolFeeRatioEventObject>;
export declare type UpdatePoolFeeRatioEventFilter = TypedEventFilter<UpdatePoolFeeRatioEvent>;
export interface UpdatePoolRewardTokensEventObject {
    _pid: BigNumber;
    _rewardTokens: string[];
}
export declare type UpdatePoolRewardTokensEvent = TypedEvent<[BigNumber, string[]], UpdatePoolRewardTokensEventObject>;
export declare type UpdatePoolRewardTokensEventFilter = TypedEventFilter<UpdatePoolRewardTokensEvent>;
export interface UpdateRewardPeriodEventObject {
    _pid: BigNumber;
    _period: number;
}
export declare type UpdateRewardPeriodEvent = TypedEvent<[BigNumber, number], UpdateRewardPeriodEventObject>;
export declare type UpdateRewardPeriodEventFilter = TypedEventFilter<UpdateRewardPeriodEvent>;
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;
    owner: string;
    recipient: string;
    sharesIn: BigNumber;
    assetsOut: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[BigNumber, string, string, string, BigNumber, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface AladdinConcentratorAfrxEthVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AladdinConcentratorAfrxEthVaultInterface;
    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(_underlying: PromiseOrValue<string>, _strategy: PromiseOrValue<string>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowance(_pid: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(_pid: PromiseOrValue<BigNumberish>, _spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        checkpoint(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claim(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimMulti(_pids: PromiseOrValue<BigNumberish>[], _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _assetsIn: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getFeeRate(_feeType: PromiseOrValue<BytesLike>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            rate: BigNumber;
        }>;
        getTotalShare(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getTotalUnderlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getUserShare(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        harvest(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_aladdinETH: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        migrateStrategy(_pid: PromiseOrValue<BigNumberish>, _newStrategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pausePoolDeposit(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pausePoolWithdraw(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pendingReward(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        pendingRewardAll(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        platform(overrides?: CallOverrides): Promise<[string]>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            ConcentratorGeneralVault.PoolSupplyInfoStructOutput,
            ConcentratorGeneralVault.PoolStrategyInfoStructOutput,
            ConcentratorGeneralVault.PoolRewardInfoStructOutput,
            ConcentratorGeneralVault.PoolFeeInfoStructOutput
        ] & {
            supply: ConcentratorGeneralVault.PoolSupplyInfoStructOutput;
            strategy: ConcentratorGeneralVault.PoolStrategyInfoStructOutput;
            reward: ConcentratorGeneralVault.PoolRewardInfoStructOutput;
            fee: ConcentratorGeneralVault.PoolFeeInfoStructOutput;
        }>;
        poolLength(overrides?: CallOverrides): Promise<[BigNumber] & {
            pools: BigNumber;
        }>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewardToken(overrides?: CallOverrides): Promise<[string]>;
        setWithdrawFeeForUser(_pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, _ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        underlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePoolFeeRatio(_pid: PromiseOrValue<BigNumberish>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateRewardPeriod(_pid: PromiseOrValue<BigNumberish>, _period: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateZap(_zap: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            shares: BigNumber;
            rewards: BigNumber;
            rewardPerSharePaid: BigNumber;
        }>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _sharesIn: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        zap(overrides?: CallOverrides): Promise<[string]>;
    };
    addPool(_underlying: PromiseOrValue<string>, _strategy: PromiseOrValue<string>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowance(_pid: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(_pid: PromiseOrValue<BigNumberish>, _spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    checkpoint(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claim(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAll(_minOut: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimMulti(_pids: PromiseOrValue<BigNumberish>[], _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _assetsIn: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getFeeRate(_feeType: PromiseOrValue<BytesLike>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getTotalShare(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTotalUnderlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getUserShare(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    harvest(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_aladdinETH: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    migrateStrategy(_pid: PromiseOrValue<BigNumberish>, _newStrategy: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    pausePoolDeposit(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pausePoolWithdraw(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pendingReward(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    pendingRewardAll(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    platform(overrides?: CallOverrides): Promise<string>;
    poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        ConcentratorGeneralVault.PoolSupplyInfoStructOutput,
        ConcentratorGeneralVault.PoolStrategyInfoStructOutput,
        ConcentratorGeneralVault.PoolRewardInfoStructOutput,
        ConcentratorGeneralVault.PoolFeeInfoStructOutput
    ] & {
        supply: ConcentratorGeneralVault.PoolSupplyInfoStructOutput;
        strategy: ConcentratorGeneralVault.PoolStrategyInfoStructOutput;
        reward: ConcentratorGeneralVault.PoolRewardInfoStructOutput;
        fee: ConcentratorGeneralVault.PoolFeeInfoStructOutput;
    }>;
    poolLength(overrides?: CallOverrides): Promise<BigNumber>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewardToken(overrides?: CallOverrides): Promise<string>;
    setWithdrawFeeForUser(_pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, _ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    underlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePoolFeeRatio(_pid: PromiseOrValue<BigNumberish>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateRewardPeriod(_pid: PromiseOrValue<BigNumberish>, _period: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateZap(_zap: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        shares: BigNumber;
        rewards: BigNumber;
        rewardPerSharePaid: BigNumber;
    }>;
    withdraw(_pid: PromiseOrValue<BigNumberish>, _sharesIn: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    zap(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        addPool(_underlying: PromiseOrValue<string>, _strategy: PromiseOrValue<string>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        allowance(_pid: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_pid: PromiseOrValue<BigNumberish>, _spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        checkpoint(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        claim(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _claimAsToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimMulti(_pids: PromiseOrValue<BigNumberish>[], _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _assetsIn: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getFeeRate(_feeType: PromiseOrValue<BytesLike>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalShare(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalUnderlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserShare(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        harvest(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_aladdinETH: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        migrateStrategy(_pid: PromiseOrValue<BigNumberish>, _newStrategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        owner(overrides?: CallOverrides): Promise<string>;
        pausePoolDeposit(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        pausePoolWithdraw(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        pendingReward(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardAll(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        platform(overrides?: CallOverrides): Promise<string>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            ConcentratorGeneralVault.PoolSupplyInfoStructOutput,
            ConcentratorGeneralVault.PoolStrategyInfoStructOutput,
            ConcentratorGeneralVault.PoolRewardInfoStructOutput,
            ConcentratorGeneralVault.PoolFeeInfoStructOutput
        ] & {
            supply: ConcentratorGeneralVault.PoolSupplyInfoStructOutput;
            strategy: ConcentratorGeneralVault.PoolStrategyInfoStructOutput;
            reward: ConcentratorGeneralVault.PoolRewardInfoStructOutput;
            fee: ConcentratorGeneralVault.PoolFeeInfoStructOutput;
        }>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        rewardToken(overrides?: CallOverrides): Promise<string>;
        setWithdrawFeeForUser(_pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, _ratio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        underlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updatePoolFeeRatio(_pid: PromiseOrValue<BigNumberish>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        updateRewardPeriod(_pid: PromiseOrValue<BigNumberish>, _period: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateZap(_zap: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            shares: BigNumber;
            rewards: BigNumber;
            rewardPerSharePaid: BigNumber;
        }>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _sharesIn: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        zap(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'AddPool(uint256,address,address)'(_pid?: PromiseOrValue<BigNumberish> | null, _underlying?: null, _strategy?: null): AddPoolEventFilter;
        AddPool(_pid?: PromiseOrValue<BigNumberish> | null, _underlying?: null, _strategy?: null): AddPoolEventFilter;
        'Approval(uint256,address,address,uint256)'(pid?: PromiseOrValue<BigNumberish> | null, owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(pid?: PromiseOrValue<BigNumberish> | null, owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'CancleCustomizeFee(bytes32,address)'(_feeType?: null, _user?: null): CancleCustomizeFeeEventFilter;
        CancleCustomizeFee(_feeType?: null, _user?: null): CancleCustomizeFeeEventFilter;
        'Claim(uint256,address,address,uint256)'(pid?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, rewards?: null): ClaimEventFilter;
        Claim(pid?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, rewards?: null): ClaimEventFilter;
        'CustomizeFee(bytes32,address,uint256)'(_feeType?: null, _user?: null, _rate?: null): CustomizeFeeEventFilter;
        CustomizeFee(_feeType?: null, _user?: null, _rate?: null): CustomizeFeeEventFilter;
        'Deposit(uint256,address,address,uint256,uint256)'(pid?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, assetsIn?: null, sharesOut?: null): DepositEventFilter;
        Deposit(pid?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, assetsIn?: null, sharesOut?: null): DepositEventFilter;
        'Harvest(uint256,address,address,uint256,uint256,uint256)'(pid?: PromiseOrValue<BigNumberish> | null, caller?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, rewards?: null, platformFee?: null, harvestBounty?: null): HarvestEventFilter;
        Harvest(pid?: PromiseOrValue<BigNumberish> | null, caller?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, rewards?: null, platformFee?: null, harvestBounty?: null): HarvestEventFilter;
        'Migrate(uint256,address,address)'(_pid?: PromiseOrValue<BigNumberish> | null, _oldStrategy?: null, _newStrategy?: null): MigrateEventFilter;
        Migrate(_pid?: PromiseOrValue<BigNumberish> | null, _oldStrategy?: null, _newStrategy?: null): MigrateEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'PausePoolDeposit(uint256,bool)'(_pid?: PromiseOrValue<BigNumberish> | null, _status?: null): PausePoolDepositEventFilter;
        PausePoolDeposit(_pid?: PromiseOrValue<BigNumberish> | null, _status?: null): PausePoolDepositEventFilter;
        'PausePoolWithdraw(uint256,bool)'(_pid?: PromiseOrValue<BigNumberish> | null, _status?: null): PausePoolWithdrawEventFilter;
        PausePoolWithdraw(_pid?: PromiseOrValue<BigNumberish> | null, _status?: null): PausePoolWithdrawEventFilter;
        'UpdatePlatform(address)'(_platform?: PromiseOrValue<string> | null): UpdatePlatformEventFilter;
        UpdatePlatform(_platform?: PromiseOrValue<string> | null): UpdatePlatformEventFilter;
        'UpdatePoolFeeRatio(uint256,uint32,uint32,uint32)'(_pid?: PromiseOrValue<BigNumberish> | null, _withdrawFeeRatio?: null, _platformFeeRatio?: null, _harvestBountyRatio?: null): UpdatePoolFeeRatioEventFilter;
        UpdatePoolFeeRatio(_pid?: PromiseOrValue<BigNumberish> | null, _withdrawFeeRatio?: null, _platformFeeRatio?: null, _harvestBountyRatio?: null): UpdatePoolFeeRatioEventFilter;
        'UpdatePoolRewardTokens(uint256,address[])'(_pid?: PromiseOrValue<BigNumberish> | null, _rewardTokens?: null): UpdatePoolRewardTokensEventFilter;
        UpdatePoolRewardTokens(_pid?: PromiseOrValue<BigNumberish> | null, _rewardTokens?: null): UpdatePoolRewardTokensEventFilter;
        'UpdateRewardPeriod(uint256,uint32)'(_pid?: PromiseOrValue<BigNumberish> | null, _period?: null): UpdateRewardPeriodEventFilter;
        UpdateRewardPeriod(_pid?: PromiseOrValue<BigNumberish> | null, _period?: null): UpdateRewardPeriodEventFilter;
        'UpdateZap(address)'(_zap?: PromiseOrValue<string> | null): UpdateZapEventFilter;
        UpdateZap(_zap?: PromiseOrValue<string> | null): UpdateZapEventFilter;
        'Withdraw(uint256,address,address,address,uint256,uint256)'(pid?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, owner?: PromiseOrValue<string> | null, recipient?: null, sharesIn?: null, assetsOut?: null): WithdrawEventFilter;
        Withdraw(pid?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, owner?: PromiseOrValue<string> | null, recipient?: null, sharesIn?: null, assetsOut?: null): WithdrawEventFilter;
    };
    estimateGas: {
        addPool(_underlying: PromiseOrValue<string>, _strategy: PromiseOrValue<string>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowance(_pid: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_pid: PromiseOrValue<BigNumberish>, _spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        checkpoint(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claim(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimMulti(_pids: PromiseOrValue<BigNumberish>[], _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _assetsIn: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getFeeRate(_feeType: PromiseOrValue<BytesLike>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalShare(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalUnderlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserShare(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        harvest(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_aladdinETH: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        migrateStrategy(_pid: PromiseOrValue<BigNumberish>, _newStrategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pausePoolDeposit(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pausePoolWithdraw(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pendingReward(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardAll(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        platform(overrides?: CallOverrides): Promise<BigNumber>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        poolLength(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewardToken(overrides?: CallOverrides): Promise<BigNumber>;
        setWithdrawFeeForUser(_pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, _ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        underlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePoolFeeRatio(_pid: PromiseOrValue<BigNumberish>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateRewardPeriod(_pid: PromiseOrValue<BigNumberish>, _period: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateZap(_zap: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _sharesIn: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        zap(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        addPool(_underlying: PromiseOrValue<string>, _strategy: PromiseOrValue<string>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowance(_pid: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(_pid: PromiseOrValue<BigNumberish>, _spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        checkpoint(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claim(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimMulti(_pids: PromiseOrValue<BigNumberish>[], _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, _claimAsToken: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _assetsIn: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getFeeRate(_feeType: PromiseOrValue<BytesLike>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalShare(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalUnderlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserShare(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        harvest(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_aladdinETH: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        migrateStrategy(_pid: PromiseOrValue<BigNumberish>, _newStrategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pausePoolDeposit(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pausePoolWithdraw(_pid: PromiseOrValue<BigNumberish>, _status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pendingReward(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingRewardAll(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platform(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolInfo(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setWithdrawFeeForUser(_pid: PromiseOrValue<BigNumberish>, _user: PromiseOrValue<string>, _ratio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        underlying(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePoolFeeRatio(_pid: PromiseOrValue<BigNumberish>, _withdrawFeeRatio: PromiseOrValue<BigNumberish>, _platformFeeRatio: PromiseOrValue<BigNumberish>, _harvestBountyRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateRewardPeriod(_pid: PromiseOrValue<BigNumberish>, _period: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateZap(_zap: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userInfo(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(_pid: PromiseOrValue<BigNumberish>, _sharesIn: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        zap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
