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 ICompoundor {
    type AutoCompoundParamsStruct = {
        tokenId: PromiseOrValue<BigNumberish>;
        rewardConversion: PromiseOrValue<BigNumberish>;
        withdrawReward: PromiseOrValue<boolean>;
        doSwap: PromiseOrValue<boolean>;
    };
    type AutoCompoundParamsStructOutput = [BigNumber, number, boolean, boolean] & {
        tokenId: BigNumber;
        rewardConversion: number;
        withdrawReward: boolean;
        doSwap: boolean;
    };
    type DecreaseLiquidityAndCollectParamsStruct = {
        tokenId: PromiseOrValue<BigNumberish>;
        liquidity: PromiseOrValue<BigNumberish>;
        amount0Min: PromiseOrValue<BigNumberish>;
        amount1Min: PromiseOrValue<BigNumberish>;
        deadline: PromiseOrValue<BigNumberish>;
        recipient: PromiseOrValue<string>;
    };
    type DecreaseLiquidityAndCollectParamsStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        string
    ] & {
        tokenId: BigNumber;
        liquidity: BigNumber;
        amount0Min: BigNumber;
        amount1Min: BigNumber;
        deadline: BigNumber;
        recipient: string;
    };
}
export declare namespace INonfungiblePositionManager {
    type CollectParamsStruct = {
        tokenId: PromiseOrValue<BigNumberish>;
        recipient: PromiseOrValue<string>;
        amount0Max: PromiseOrValue<BigNumberish>;
        amount1Max: PromiseOrValue<BigNumberish>;
    };
    type CollectParamsStructOutput = [BigNumber, string, BigNumber, BigNumber] & {
        tokenId: BigNumber;
        recipient: string;
        amount0Max: BigNumber;
        amount1Max: BigNumber;
    };
}
export interface RevertFinanceCompoundorInterface extends utils.Interface {
    functions: {
        'MAX_POSITIONS_PER_ADDRESS()': FunctionFragment;
        'MAX_REWARD_X64()': FunctionFragment;
        'TWAPSeconds()': FunctionFragment;
        'accountBalances(address,address)': FunctionFragment;
        'accountTokens(address,uint256)': FunctionFragment;
        'autoCompound((uint256,uint8,bool,bool))': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'collect((uint256,address,uint128,uint128))': FunctionFragment;
        'compounderRewardX64()': FunctionFragment;
        'decreaseLiquidityAndCollect((uint256,uint128,uint256,uint256,uint256,address))': FunctionFragment;
        'factory()': FunctionFragment;
        'maxTWAPTickDifference()': FunctionFragment;
        'multicall(bytes[])': FunctionFragment;
        'nonfungiblePositionManager()': FunctionFragment;
        'onERC721Received(address,address,uint256,bytes)': FunctionFragment;
        'owner()': FunctionFragment;
        'ownerOf(uint256)': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'setReward(uint64,uint64)': FunctionFragment;
        'setTWAPConfig(uint32,uint32)': FunctionFragment;
        'swapRouter()': FunctionFragment;
        'totalRewardX64()': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'weth()': FunctionFragment;
        'withdrawBalance(address,address,uint256)': FunctionFragment;
        'withdrawToken(uint256,address,bool,bytes)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'MAX_POSITIONS_PER_ADDRESS' | 'MAX_REWARD_X64' | 'TWAPSeconds' | 'accountBalances' | 'accountTokens' | 'autoCompound' | 'balanceOf' | 'collect' | 'compounderRewardX64' | 'decreaseLiquidityAndCollect' | 'factory' | 'maxTWAPTickDifference' | 'multicall' | 'nonfungiblePositionManager' | 'onERC721Received' | 'owner' | 'ownerOf' | 'renounceOwnership' | 'setReward' | 'setTWAPConfig' | 'swapRouter' | 'totalRewardX64' | 'transferOwnership' | 'weth' | 'withdrawBalance' | 'withdrawToken'): FunctionFragment;
    encodeFunctionData(functionFragment: 'MAX_POSITIONS_PER_ADDRESS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_REWARD_X64', values?: undefined): string;
    encodeFunctionData(functionFragment: 'TWAPSeconds', values?: undefined): string;
    encodeFunctionData(functionFragment: 'accountBalances', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'accountTokens', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'autoCompound', values: [ICompoundor.AutoCompoundParamsStruct]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'collect', values: [INonfungiblePositionManager.CollectParamsStruct]): string;
    encodeFunctionData(functionFragment: 'compounderRewardX64', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseLiquidityAndCollect', values: [ICompoundor.DecreaseLiquidityAndCollectParamsStruct]): string;
    encodeFunctionData(functionFragment: 'factory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxTWAPTickDifference', values?: undefined): string;
    encodeFunctionData(functionFragment: 'multicall', values: [PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: 'nonfungiblePositionManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'onERC721Received', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ownerOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setReward', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setTWAPConfig', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'swapRouter', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalRewardX64', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'weth', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawBalance', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawToken', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<boolean>, PromiseOrValue<BytesLike>]): string;
    decodeFunctionResult(functionFragment: 'MAX_POSITIONS_PER_ADDRESS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_REWARD_X64', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'TWAPSeconds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accountBalances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accountTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'autoCompound', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'collect', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'compounderRewardX64', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseLiquidityAndCollect', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'factory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxTWAPTickDifference', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'multicall', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonfungiblePositionManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'onERC721Received', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ownerOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTWAPConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'swapRouter', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalRewardX64', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'weth', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawToken', data: BytesLike): Result;
    events: {
        'AutoCompounded(address,uint256,uint256,uint256,uint256,uint256,address,address)': EventFragment;
        'BalanceAdded(address,address,uint256)': EventFragment;
        'BalanceRemoved(address,address,uint256)': EventFragment;
        'BalanceWithdrawn(address,address,address,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'RewardUpdated(address,uint64,uint64)': EventFragment;
        'TWAPConfigUpdated(address,uint32,uint32)': EventFragment;
        'TokenDeposited(address,uint256)': EventFragment;
        'TokenWithdrawn(address,address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AutoCompounded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BalanceAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BalanceRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BalanceWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RewardUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TWAPConfigUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokenDeposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokenWithdrawn'): EventFragment;
}
export interface AutoCompoundedEventObject {
    account: string;
    tokenId: BigNumber;
    amountAdded0: BigNumber;
    amountAdded1: BigNumber;
    reward0: BigNumber;
    reward1: BigNumber;
    token0: string;
    token1: string;
}
export declare type AutoCompoundedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    string,
    string
], AutoCompoundedEventObject>;
export declare type AutoCompoundedEventFilter = TypedEventFilter<AutoCompoundedEvent>;
export interface BalanceAddedEventObject {
    account: string;
    token: string;
    amount: BigNumber;
}
export declare type BalanceAddedEvent = TypedEvent<[string, string, BigNumber], BalanceAddedEventObject>;
export declare type BalanceAddedEventFilter = TypedEventFilter<BalanceAddedEvent>;
export interface BalanceRemovedEventObject {
    account: string;
    token: string;
    amount: BigNumber;
}
export declare type BalanceRemovedEvent = TypedEvent<[string, string, BigNumber], BalanceRemovedEventObject>;
export declare type BalanceRemovedEventFilter = TypedEventFilter<BalanceRemovedEvent>;
export interface BalanceWithdrawnEventObject {
    account: string;
    token: string;
    to: string;
    amount: BigNumber;
}
export declare type BalanceWithdrawnEvent = TypedEvent<[string, string, string, BigNumber], BalanceWithdrawnEventObject>;
export declare type BalanceWithdrawnEventFilter = TypedEventFilter<BalanceWithdrawnEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface RewardUpdatedEventObject {
    account: string;
    totalRewardX64: BigNumber;
    compounderRewardX64: BigNumber;
}
export declare type RewardUpdatedEvent = TypedEvent<[string, BigNumber, BigNumber], RewardUpdatedEventObject>;
export declare type RewardUpdatedEventFilter = TypedEventFilter<RewardUpdatedEvent>;
export interface TWAPConfigUpdatedEventObject {
    account: string;
    maxTWAPTickDifference: number;
    TWAPSeconds: number;
}
export declare type TWAPConfigUpdatedEvent = TypedEvent<[string, number, number], TWAPConfigUpdatedEventObject>;
export declare type TWAPConfigUpdatedEventFilter = TypedEventFilter<TWAPConfigUpdatedEvent>;
export interface TokenDepositedEventObject {
    account: string;
    tokenId: BigNumber;
}
export declare type TokenDepositedEvent = TypedEvent<[string, BigNumber], TokenDepositedEventObject>;
export declare type TokenDepositedEventFilter = TypedEventFilter<TokenDepositedEvent>;
export interface TokenWithdrawnEventObject {
    account: string;
    to: string;
    tokenId: BigNumber;
}
export declare type TokenWithdrawnEvent = TypedEvent<[string, string, BigNumber], TokenWithdrawnEventObject>;
export declare type TokenWithdrawnEventFilter = TypedEventFilter<TokenWithdrawnEvent>;
export interface RevertFinanceCompoundor extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: RevertFinanceCompoundorInterface;
    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: {
        MAX_POSITIONS_PER_ADDRESS(overrides?: CallOverrides): Promise<[number]>;
        MAX_REWARD_X64(overrides?: CallOverrides): Promise<[BigNumber]>;
        TWAPSeconds(overrides?: CallOverrides): Promise<[number]>;
        accountBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        accountTokens(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        autoCompound(params: ICompoundor.AutoCompoundParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            balance: BigNumber;
        }>;
        collect(params: INonfungiblePositionManager.CollectParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        compounderRewardX64(overrides?: CallOverrides): Promise<[BigNumber]>;
        decreaseLiquidityAndCollect(params: ICompoundor.DecreaseLiquidityAndCollectParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        factory(overrides?: CallOverrides): Promise<[string]>;
        maxTWAPTickDifference(overrides?: CallOverrides): Promise<[number]>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        nonfungiblePositionManager(overrides?: CallOverrides): Promise<[string]>;
        onERC721Received(arg0: PromiseOrValue<string>, from: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        ownerOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setReward(_totalRewardX64: PromiseOrValue<BigNumberish>, _compounderRewardX64: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTWAPConfig(_maxTWAPTickDifference: PromiseOrValue<BigNumberish>, _TWAPSeconds: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapRouter(overrides?: CallOverrides): Promise<[string]>;
        totalRewardX64(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        weth(overrides?: CallOverrides): Promise<[string]>;
        withdrawBalance(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawToken(tokenId: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, withdrawBalances: PromiseOrValue<boolean>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    MAX_POSITIONS_PER_ADDRESS(overrides?: CallOverrides): Promise<number>;
    MAX_REWARD_X64(overrides?: CallOverrides): Promise<BigNumber>;
    TWAPSeconds(overrides?: CallOverrides): Promise<number>;
    accountBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    accountTokens(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    autoCompound(params: ICompoundor.AutoCompoundParamsStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    collect(params: INonfungiblePositionManager.CollectParamsStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    compounderRewardX64(overrides?: CallOverrides): Promise<BigNumber>;
    decreaseLiquidityAndCollect(params: ICompoundor.DecreaseLiquidityAndCollectParamsStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    factory(overrides?: CallOverrides): Promise<string>;
    maxTWAPTickDifference(overrides?: CallOverrides): Promise<number>;
    multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    nonfungiblePositionManager(overrides?: CallOverrides): Promise<string>;
    onERC721Received(arg0: PromiseOrValue<string>, from: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    ownerOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setReward(_totalRewardX64: PromiseOrValue<BigNumberish>, _compounderRewardX64: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTWAPConfig(_maxTWAPTickDifference: PromiseOrValue<BigNumberish>, _TWAPSeconds: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapRouter(overrides?: CallOverrides): Promise<string>;
    totalRewardX64(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    weth(overrides?: CallOverrides): Promise<string>;
    withdrawBalance(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawToken(tokenId: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, withdrawBalances: PromiseOrValue<boolean>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        MAX_POSITIONS_PER_ADDRESS(overrides?: CallOverrides): Promise<number>;
        MAX_REWARD_X64(overrides?: CallOverrides): Promise<BigNumber>;
        TWAPSeconds(overrides?: CallOverrides): Promise<number>;
        accountBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        accountTokens(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        autoCompound(params: ICompoundor.AutoCompoundParamsStruct, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            reward0: BigNumber;
            reward1: BigNumber;
            compounded0: BigNumber;
            compounded1: BigNumber;
        }>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        collect(params: INonfungiblePositionManager.CollectParamsStruct, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount0: BigNumber;
            amount1: BigNumber;
        }>;
        compounderRewardX64(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseLiquidityAndCollect(params: ICompoundor.DecreaseLiquidityAndCollectParamsStruct, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount0: BigNumber;
            amount1: BigNumber;
        }>;
        factory(overrides?: CallOverrides): Promise<string>;
        maxTWAPTickDifference(overrides?: CallOverrides): Promise<number>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<string[]>;
        nonfungiblePositionManager(overrides?: CallOverrides): Promise<string>;
        onERC721Received(arg0: PromiseOrValue<string>, from: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        ownerOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        setReward(_totalRewardX64: PromiseOrValue<BigNumberish>, _compounderRewardX64: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setTWAPConfig(_maxTWAPTickDifference: PromiseOrValue<BigNumberish>, _TWAPSeconds: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapRouter(overrides?: CallOverrides): Promise<string>;
        totalRewardX64(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        weth(overrides?: CallOverrides): Promise<string>;
        withdrawBalance(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        withdrawToken(tokenId: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, withdrawBalances: PromiseOrValue<boolean>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'AutoCompounded(address,uint256,uint256,uint256,uint256,uint256,address,address)'(account?: null, tokenId?: null, amountAdded0?: null, amountAdded1?: null, reward0?: null, reward1?: null, token0?: null, token1?: null): AutoCompoundedEventFilter;
        AutoCompounded(account?: null, tokenId?: null, amountAdded0?: null, amountAdded1?: null, reward0?: null, reward1?: null, token0?: null, token1?: null): AutoCompoundedEventFilter;
        'BalanceAdded(address,address,uint256)'(account?: null, token?: null, amount?: null): BalanceAddedEventFilter;
        BalanceAdded(account?: null, token?: null, amount?: null): BalanceAddedEventFilter;
        'BalanceRemoved(address,address,uint256)'(account?: null, token?: null, amount?: null): BalanceRemovedEventFilter;
        BalanceRemoved(account?: null, token?: null, amount?: null): BalanceRemovedEventFilter;
        'BalanceWithdrawn(address,address,address,uint256)'(account?: null, token?: null, to?: null, amount?: null): BalanceWithdrawnEventFilter;
        BalanceWithdrawn(account?: null, token?: null, to?: null, amount?: null): BalanceWithdrawnEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'RewardUpdated(address,uint64,uint64)'(account?: null, totalRewardX64?: null, compounderRewardX64?: null): RewardUpdatedEventFilter;
        RewardUpdated(account?: null, totalRewardX64?: null, compounderRewardX64?: null): RewardUpdatedEventFilter;
        'TWAPConfigUpdated(address,uint32,uint32)'(account?: null, maxTWAPTickDifference?: null, TWAPSeconds?: null): TWAPConfigUpdatedEventFilter;
        TWAPConfigUpdated(account?: null, maxTWAPTickDifference?: null, TWAPSeconds?: null): TWAPConfigUpdatedEventFilter;
        'TokenDeposited(address,uint256)'(account?: null, tokenId?: null): TokenDepositedEventFilter;
        TokenDeposited(account?: null, tokenId?: null): TokenDepositedEventFilter;
        'TokenWithdrawn(address,address,uint256)'(account?: null, to?: null, tokenId?: null): TokenWithdrawnEventFilter;
        TokenWithdrawn(account?: null, to?: null, tokenId?: null): TokenWithdrawnEventFilter;
    };
    estimateGas: {
        MAX_POSITIONS_PER_ADDRESS(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_REWARD_X64(overrides?: CallOverrides): Promise<BigNumber>;
        TWAPSeconds(overrides?: CallOverrides): Promise<BigNumber>;
        accountBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        accountTokens(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        autoCompound(params: ICompoundor.AutoCompoundParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        collect(params: INonfungiblePositionManager.CollectParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        compounderRewardX64(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseLiquidityAndCollect(params: ICompoundor.DecreaseLiquidityAndCollectParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<BigNumber>;
        maxTWAPTickDifference(overrides?: CallOverrides): Promise<BigNumber>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        nonfungiblePositionManager(overrides?: CallOverrides): Promise<BigNumber>;
        onERC721Received(arg0: PromiseOrValue<string>, from: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setReward(_totalRewardX64: PromiseOrValue<BigNumberish>, _compounderRewardX64: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTWAPConfig(_maxTWAPTickDifference: PromiseOrValue<BigNumberish>, _TWAPSeconds: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapRouter(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewardX64(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        weth(overrides?: CallOverrides): Promise<BigNumber>;
        withdrawBalance(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawToken(tokenId: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, withdrawBalances: PromiseOrValue<boolean>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        MAX_POSITIONS_PER_ADDRESS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_REWARD_X64(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        TWAPSeconds(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accountBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accountTokens(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        autoCompound(params: ICompoundor.AutoCompoundParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        collect(params: INonfungiblePositionManager.CollectParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        compounderRewardX64(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseLiquidityAndCollect(params: ICompoundor.DecreaseLiquidityAndCollectParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        factory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxTWAPTickDifference(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        nonfungiblePositionManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        onERC721Received(arg0: PromiseOrValue<string>, from: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ownerOf(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setReward(_totalRewardX64: PromiseOrValue<BigNumberish>, _compounderRewardX64: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTWAPConfig(_maxTWAPTickDifference: PromiseOrValue<BigNumberish>, _TWAPSeconds: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapRouter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalRewardX64(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        weth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawBalance(token: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawToken(tokenId: PromiseOrValue<BigNumberish>, to: PromiseOrValue<string>, withdrawBalances: PromiseOrValue<boolean>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
