import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface AladdinConcentratorAcrvVaultInterface extends utils.Interface {
    functions: {
        'accCTRPerShare(uint256)': FunctionFragment;
        'addPool(uint256,address[],uint256,uint256,uint256)': FunctionFragment;
        'aladdinCRV()': FunctionFragment;
        'claim(uint256,uint256,uint8)': FunctionFragment;
        'claimAll(uint256,uint8)': FunctionFragment;
        'claimAllCTR(address)': FunctionFragment;
        'claimCTR(uint256,address)': FunctionFragment;
        'ctr()': FunctionFragment;
        'ctrMined()': FunctionFragment;
        'deposit(uint256,address,uint256)': FunctionFragment;
        'deposit(uint256,uint256)': FunctionFragment;
        'depositAll(uint256,address)': FunctionFragment;
        'depositAll(uint256)': FunctionFragment;
        'endTime()': FunctionFragment;
        'getTotalShare(uint256)': FunctionFragment;
        'getTotalUnderlying(uint256)': FunctionFragment;
        'getUserShare(uint256,address)': FunctionFragment;
        'harvest(uint256,address,uint256)': FunctionFragment;
        'initialize(address,address,address)': FunctionFragment;
        'migrate(uint256,address,uint256)': FunctionFragment;
        'migrator()': FunctionFragment;
        'owner()': FunctionFragment;
        'pausePoolDeposit(uint256,bool)': FunctionFragment;
        'pausePoolWithdraw(uint256,bool)': FunctionFragment;
        'pendingCTR(uint256,address)': FunctionFragment;
        'pendingReward(uint256,address)': FunctionFragment;
        'pendingRewardAll(address)': FunctionFragment;
        'platform()': FunctionFragment;
        'poolInfo(uint256)': FunctionFragment;
        'poolLength()': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'startTime()': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'updateHarvestBountyPercentage(uint256,uint256)': FunctionFragment;
        'updateIFOConfig(address,uint64,uint64)': FunctionFragment;
        'updateMigrator(address)': 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,address,uint256)': FunctionFragment;
        'zapAllAndDeposit(uint256,address,uint256)': FunctionFragment;
        'zapAndDeposit(uint256,address,address,uint256,uint256)': FunctionFragment;
        'zapAndDeposit(uint256,address,uint256,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'accCTRPerShare' | 'addPool' | 'aladdinCRV' | 'claim' | 'claimAll' | 'claimAllCTR' | 'claimCTR' | 'ctr' | 'ctrMined' | 'deposit(uint256,address,uint256)' | 'deposit(uint256,uint256)' | 'depositAll(uint256,address)' | 'depositAll(uint256)' | 'endTime' | 'getTotalShare' | 'getTotalUnderlying' | 'getUserShare' | 'harvest' | 'initialize' | 'migrate' | 'migrator' | 'owner' | 'pausePoolDeposit' | 'pausePoolWithdraw' | 'pendingCTR' | 'pendingReward' | 'pendingRewardAll' | 'platform' | 'poolInfo' | 'poolLength' | 'renounceOwnership' | 'startTime' | 'transferOwnership' | 'updateHarvestBountyPercentage' | 'updateIFOConfig' | 'updateMigrator' | 'updatePlatform' | 'updatePlatformFeePercentage' | 'updatePoolRewardTokens' | 'updateWithdrawFeePercentage' | 'updateZap' | 'userInfo' | 'withdrawAllAndClaim' | 'withdrawAllAndZap' | 'withdrawAndClaim' | 'withdrawAndZap' | 'zap' | 'zapAllAndDeposit(uint256,address,address,uint256)' | 'zapAllAndDeposit(uint256,address,uint256)' | 'zapAndDeposit(uint256,address,address,uint256,uint256)' | 'zapAndDeposit(uint256,address,uint256,uint256)'): FunctionFragment;
    encodeFunctionData(functionFragment: 'accCTRPerShare', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'addPool', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'aladdinCRV', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claim', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'claimAll', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'claimAllCTR', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimCTR', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'ctr', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ctrMined', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit(uint256,address,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deposit(uint256,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositAll(uint256,address)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'depositAll(uint256)', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'endTime', values?: undefined): 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: 'migrate', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'migrator', values?: undefined): 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: 'pendingCTR', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): 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: 'startTime', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updateHarvestBountyPercentage', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateIFOConfig', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateMigrator', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updatePlatform', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updatePlatformFeePercentage', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updatePoolRewardTokens', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'updateWithdrawFeePercentage', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateZap', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'userInfo', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdrawAllAndClaim', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawAllAndZap', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawAndClaim', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'withdrawAndZap', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'zap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'zapAllAndDeposit(uint256,address,address,uint256)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'zapAllAndDeposit(uint256,address,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'zapAndDeposit(uint256,address,address,uint256,uint256)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'zapAndDeposit(uint256,address,uint256,uint256)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    decodeFunctionResult(functionFragment: 'accCTRPerShare', data: BytesLike): Result;
    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: 'claimAllCTR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimCTR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ctr', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ctrMined', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit(uint256,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit(uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositAll(uint256,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositAll(uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'endTime', 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: 'migrate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pausePoolDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pausePoolWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingCTR', 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: 'startTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateHarvestBountyPercentage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateIFOConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateMigrator', 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(uint256,address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'zapAllAndDeposit(uint256,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'zapAndDeposit(uint256,address,address,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'zapAndDeposit(uint256,address,uint256,uint256)', data: BytesLike): Result;
    events: {
        'AddPool(uint256,uint256,address[])': EventFragment;
        'Claim(address,uint256,uint8)': EventFragment;
        'ClaimCTR(uint256,address,address,uint256)': EventFragment;
        'Deposit(uint256,address,uint256)': EventFragment;
        'Harvest(address,uint256,uint256,uint256)': EventFragment;
        'IFOMineCTR(uint256)': EventFragment;
        'Migrate(uint256,address,uint256,address,address,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'PausePoolDeposit(uint256,bool)': EventFragment;
        'PausePoolWithdraw(uint256,bool)': EventFragment;
        'UpdateHarvestBountyPercentage(uint256,uint256)': EventFragment;
        'UpdateIFOConfig(address,uint256,uint256)': EventFragment;
        'UpdateMigrator(address)': 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: 'ClaimCTR'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Harvest'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'IFOMineCTR'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Migrate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PausePoolDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PausePoolWithdraw'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateHarvestBountyPercentage'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateIFOConfig'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateMigrator'): 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 ClaimCTREventObject {
    _pid: BigNumber;
    _caller: string;
    _recipient: string;
    _amount: BigNumber;
}
export declare type ClaimCTREvent = TypedEvent<[BigNumber, string, string, BigNumber], ClaimCTREventObject>;
export declare type ClaimCTREventFilter = TypedEventFilter<ClaimCTREvent>;
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 IFOMineCTREventObject {
    _amount: BigNumber;
}
export declare type IFOMineCTREvent = TypedEvent<[BigNumber], IFOMineCTREventObject>;
export declare type IFOMineCTREventFilter = TypedEventFilter<IFOMineCTREvent>;
export interface MigrateEventObject {
    _pid: BigNumber;
    _caller: string;
    _share: BigNumber;
    _recipient: string;
    _migrator: string;
    _newPid: BigNumber;
}
export declare type MigrateEvent = TypedEvent<[BigNumber, string, BigNumber, string, string, BigNumber], 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 UpdateHarvestBountyPercentageEventObject {
    _pid: BigNumber;
    _percentage: BigNumber;
}
export declare type UpdateHarvestBountyPercentageEvent = TypedEvent<[
    BigNumber,
    BigNumber
], UpdateHarvestBountyPercentageEventObject>;
export declare type UpdateHarvestBountyPercentageEventFilter = TypedEventFilter<UpdateHarvestBountyPercentageEvent>;
export interface UpdateIFOConfigEventObject {
    _ctr: string;
    _startTime: BigNumber;
    _endTime: BigNumber;
}
export declare type UpdateIFOConfigEvent = TypedEvent<[string, BigNumber, BigNumber], UpdateIFOConfigEventObject>;
export declare type UpdateIFOConfigEventFilter = TypedEventFilter<UpdateIFOConfigEvent>;
export interface UpdateMigratorEventObject {
    _migrator: string;
}
export declare type UpdateMigratorEvent = TypedEvent<[string], UpdateMigratorEventObject>;
export declare type UpdateMigratorEventFilter = TypedEventFilter<UpdateMigratorEvent>;
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 AladdinConcentratorAcrvVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: AladdinConcentratorAcrvVaultInterface;
    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: {
        accCTRPerShare(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        addPool(_convexPid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], _withdrawFeePercentage: PromiseOrValue<BigNumberish>, _platformFeePercentage: PromiseOrValue<BigNumberish>, _harvestBountyPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        aladdinCRV(overrides?: CallOverrides): Promise<[string]>;
        claim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAllCTR(_recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimCTR(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        ctr(overrides?: CallOverrides): Promise<[string]>;
        ctrMined(overrides?: CallOverrides): Promise<[BigNumber]>;
        'deposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'deposit(uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'depositAll(uint256,address)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'depositAll(uint256)'(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        endTime(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>, _minimumOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_aladdinCRV: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        migrate(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _newPid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        migrator(overrides?: CallOverrides): Promise<[string]>;
        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>;
        pendingCTR(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): 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<[string]>;
        poolInfo(arg0: PromiseOrValue<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?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        startTime(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateHarvestBountyPercentage(_pid: PromiseOrValue<BigNumberish>, _percentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateIFOConfig(_ctr: PromiseOrValue<string>, _startTime: PromiseOrValue<BigNumberish>, _endTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateMigrator(_migrator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePlatformFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateWithdrawFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: 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;
        }>;
        withdrawAllAndClaim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawAllAndZap(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawAndClaim(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawAndZap(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        zap(overrides?: CallOverrides): Promise<[string]>;
        'zapAllAndDeposit(uint256,address,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'zapAllAndDeposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'zapAndDeposit(uint256,address,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'zapAndDeposit(uint256,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    accCTRPerShare(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    addPool(_convexPid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], _withdrawFeePercentage: PromiseOrValue<BigNumberish>, _platformFeePercentage: PromiseOrValue<BigNumberish>, _harvestBountyPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    aladdinCRV(overrides?: CallOverrides): Promise<string>;
    claim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAll(_minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAllCTR(_recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimCTR(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    ctr(overrides?: CallOverrides): Promise<string>;
    ctrMined(overrides?: CallOverrides): Promise<BigNumber>;
    'deposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'deposit(uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'depositAll(uint256,address)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'depositAll(uint256)'(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    endTime(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>, _minimumOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_aladdinCRV: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    migrate(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _newPid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    migrator(overrides?: CallOverrides): Promise<string>;
    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>;
    pendingCTR(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): 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<string>;
    poolInfo(arg0: PromiseOrValue<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?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    startTime(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateHarvestBountyPercentage(_pid: PromiseOrValue<BigNumberish>, _percentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateIFOConfig(_ctr: PromiseOrValue<string>, _startTime: PromiseOrValue<BigNumberish>, _endTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateMigrator(_migrator: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePlatformFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateWithdrawFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: 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;
    }>;
    withdrawAllAndClaim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawAllAndZap(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawAndClaim(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawAndZap(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    zap(overrides?: CallOverrides): Promise<string>;
    'zapAllAndDeposit(uint256,address,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'zapAllAndDeposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'zapAndDeposit(uint256,address,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'zapAndDeposit(uint256,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        accCTRPerShare(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        addPool(_convexPid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], _withdrawFeePercentage: PromiseOrValue<BigNumberish>, _platformFeePercentage: PromiseOrValue<BigNumberish>, _harvestBountyPercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        aladdinCRV(overrides?: CallOverrides): Promise<string>;
        claim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        claimAllCTR(_recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimCTR(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        ctr(overrides?: CallOverrides): Promise<string>;
        ctrMined(overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'depositAll(uint256,address)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'depositAll(uint256)'(_pid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        endTime(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>, _minimumOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_aladdinCRV: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        migrate(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _newPid: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        migrator(overrides?: CallOverrides): Promise<string>;
        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>;
        pendingCTR(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): 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<string>;
        poolInfo(arg0: PromiseOrValue<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>;
        startTime(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateHarvestBountyPercentage(_pid: PromiseOrValue<BigNumberish>, _percentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateIFOConfig(_ctr: PromiseOrValue<string>, _startTime: PromiseOrValue<BigNumberish>, _endTime: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateMigrator(_migrator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updatePlatformFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        updateWithdrawFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: 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;
        }>;
        withdrawAllAndClaim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            withdrawn: BigNumber;
            claimed: BigNumber;
        }>;
        withdrawAllAndZap(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawAndClaim(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            withdrawn: BigNumber;
            claimed: BigNumber;
        }>;
        withdrawAndZap(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        zap(overrides?: CallOverrides): Promise<string>;
        'zapAllAndDeposit(uint256,address,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'zapAllAndDeposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'zapAndDeposit(uint256,address,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'zapAndDeposit(uint256,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'AddPool(uint256,uint256,address[])'(_pid?: PromiseOrValue<BigNumberish> | null, _convexPid?: null, _rewardTokens?: null): AddPoolEventFilter;
        AddPool(_pid?: PromiseOrValue<BigNumberish> | null, _convexPid?: null, _rewardTokens?: null): AddPoolEventFilter;
        'Claim(address,uint256,uint8)'(_sender?: PromiseOrValue<string> | null, _reward?: null, _option?: null): ClaimEventFilter;
        Claim(_sender?: PromiseOrValue<string> | null, _reward?: null, _option?: null): ClaimEventFilter;
        'ClaimCTR(uint256,address,address,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _caller?: PromiseOrValue<string> | null, _recipient?: null, _amount?: null): ClaimCTREventFilter;
        ClaimCTR(_pid?: PromiseOrValue<BigNumberish> | null, _caller?: PromiseOrValue<string> | null, _recipient?: null, _amount?: null): ClaimCTREventFilter;
        'Deposit(uint256,address,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _sender?: PromiseOrValue<string> | null, _amount?: null): DepositEventFilter;
        Deposit(_pid?: PromiseOrValue<BigNumberish> | null, _sender?: PromiseOrValue<string> | null, _amount?: null): DepositEventFilter;
        'Harvest(address,uint256,uint256,uint256)'(_caller?: PromiseOrValue<string> | null, _reward?: null, _platformFee?: null, _harvestBounty?: null): HarvestEventFilter;
        Harvest(_caller?: PromiseOrValue<string> | null, _reward?: null, _platformFee?: null, _harvestBounty?: null): HarvestEventFilter;
        'IFOMineCTR(uint256)'(_amount?: null): IFOMineCTREventFilter;
        IFOMineCTR(_amount?: null): IFOMineCTREventFilter;
        'Migrate(uint256,address,uint256,address,address,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _caller?: PromiseOrValue<string> | null, _share?: null, _recipient?: null, _migrator?: null, _newPid?: null): MigrateEventFilter;
        Migrate(_pid?: PromiseOrValue<BigNumberish> | null, _caller?: PromiseOrValue<string> | null, _share?: null, _recipient?: null, _migrator?: null, _newPid?: 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;
        'UpdateHarvestBountyPercentage(uint256,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _percentage?: null): UpdateHarvestBountyPercentageEventFilter;
        UpdateHarvestBountyPercentage(_pid?: PromiseOrValue<BigNumberish> | null, _percentage?: null): UpdateHarvestBountyPercentageEventFilter;
        'UpdateIFOConfig(address,uint256,uint256)'(_ctr?: null, _startTime?: null, _endTime?: null): UpdateIFOConfigEventFilter;
        UpdateIFOConfig(_ctr?: null, _startTime?: null, _endTime?: null): UpdateIFOConfigEventFilter;
        'UpdateMigrator(address)'(_migrator?: null): UpdateMigratorEventFilter;
        UpdateMigrator(_migrator?: null): UpdateMigratorEventFilter;
        'UpdatePlatform(address)'(_platform?: PromiseOrValue<string> | null): UpdatePlatformEventFilter;
        UpdatePlatform(_platform?: PromiseOrValue<string> | null): UpdatePlatformEventFilter;
        'UpdatePlatformFeePercentage(uint256,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _feePercentage?: null): UpdatePlatformFeePercentageEventFilter;
        UpdatePlatformFeePercentage(_pid?: PromiseOrValue<BigNumberish> | null, _feePercentage?: null): UpdatePlatformFeePercentageEventFilter;
        'UpdatePoolRewardTokens(uint256,address[])'(_pid?: PromiseOrValue<BigNumberish> | null, _rewardTokens?: null): UpdatePoolRewardTokensEventFilter;
        UpdatePoolRewardTokens(_pid?: PromiseOrValue<BigNumberish> | null, _rewardTokens?: null): UpdatePoolRewardTokensEventFilter;
        'UpdateWithdrawalFeePercentage(uint256,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _feePercentage?: null): UpdateWithdrawalFeePercentageEventFilter;
        UpdateWithdrawalFeePercentage(_pid?: PromiseOrValue<BigNumberish> | null, _feePercentage?: null): UpdateWithdrawalFeePercentageEventFilter;
        'UpdateZap(address)'(_zap?: PromiseOrValue<string> | null): UpdateZapEventFilter;
        UpdateZap(_zap?: PromiseOrValue<string> | null): UpdateZapEventFilter;
        'Withdraw(uint256,address,uint256)'(_pid?: PromiseOrValue<BigNumberish> | null, _sender?: PromiseOrValue<string> | null, _shares?: null): WithdrawEventFilter;
        Withdraw(_pid?: PromiseOrValue<BigNumberish> | null, _sender?: PromiseOrValue<string> | null, _shares?: null): WithdrawEventFilter;
    };
    estimateGas: {
        accCTRPerShare(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        addPool(_convexPid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], _withdrawFeePercentage: PromiseOrValue<BigNumberish>, _platformFeePercentage: PromiseOrValue<BigNumberish>, _harvestBountyPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        aladdinCRV(overrides?: CallOverrides): Promise<BigNumber>;
        claim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAllCTR(_recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimCTR(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        ctr(overrides?: CallOverrides): Promise<BigNumber>;
        ctrMined(overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'deposit(uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'depositAll(uint256,address)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'depositAll(uint256)'(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        endTime(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>, _minimumOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_aladdinCRV: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        migrate(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _newPid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        migrator(overrides?: CallOverrides): 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>;
        pendingCTR(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): 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>;
        startTime(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateHarvestBountyPercentage(_pid: PromiseOrValue<BigNumberish>, _percentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateIFOConfig(_ctr: PromiseOrValue<string>, _startTime: PromiseOrValue<BigNumberish>, _endTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateMigrator(_migrator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePlatformFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateWithdrawFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: 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>;
        withdrawAllAndClaim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawAllAndZap(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawAndClaim(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawAndZap(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        zap(overrides?: CallOverrides): Promise<BigNumber>;
        'zapAllAndDeposit(uint256,address,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'zapAllAndDeposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'zapAndDeposit(uint256,address,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'zapAndDeposit(uint256,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        accCTRPerShare(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addPool(_convexPid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], _withdrawFeePercentage: PromiseOrValue<BigNumberish>, _platformFeePercentage: PromiseOrValue<BigNumberish>, _harvestBountyPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        aladdinCRV(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAll(_minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAllCTR(_recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimCTR(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        ctr(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ctrMined(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'deposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'deposit(uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'depositAll(uint256,address)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'depositAll(uint256)'(_pid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        endTime(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>, _minimumOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_aladdinCRV: PromiseOrValue<string>, _zap: PromiseOrValue<string>, _platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        migrate(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _newPid: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        migrator(overrides?: CallOverrides): 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>;
        pendingCTR(_pid: PromiseOrValue<BigNumberish>, _account: PromiseOrValue<string>, overrides?: CallOverrides): 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>;
        startTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateHarvestBountyPercentage(_pid: PromiseOrValue<BigNumberish>, _percentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateIFOConfig(_ctr: PromiseOrValue<string>, _startTime: PromiseOrValue<BigNumberish>, _endTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateMigrator(_migrator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePlatform(_platform: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePlatformFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePoolRewardTokens(_pid: PromiseOrValue<BigNumberish>, _rewardTokens: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateWithdrawFeePercentage(_pid: PromiseOrValue<BigNumberish>, _feePercentage: 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>;
        withdrawAllAndClaim(_pid: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAllAndZap(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAndClaim(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _minOut: PromiseOrValue<BigNumberish>, _option: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAndZap(_pid: PromiseOrValue<BigNumberish>, _shares: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minOut: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        zap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'zapAllAndDeposit(uint256,address,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'zapAllAndDeposit(uint256,address,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'zapAndDeposit(uint256,address,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'zapAndDeposit(uint256,address,uint256,uint256)'(_pid: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _minAmount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
