import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import { Listener, Provider } from "@ethersproject/providers";
import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
export interface V3StrategyAndVaultInterface extends utils.Interface {
    functions: {
        "FEE()": FunctionFragment;
        "LPTqueuedForWithdrawal()": FunctionFragment;
        "POOL()": FunctionFragment;
        "activeBins(uint256)": FunctionFragment;
        "activeStartTick()": FunctionFragment;
        "allowance(address,address)": FunctionFragment;
        "approve(address,uint256)": FunctionFragment;
        "balanceOf(address)": FunctionFragment;
        "binRegistry(int24)": FunctionFragment;
        "cancelQueuedDeposit()": FunctionFragment;
        "cancelQueuedWithdrawal()": FunctionFragment;
        "claimLPTokensFromDeposit()": FunctionFragment;
        "claimWithdrawal()": FunctionFragment;
        "claimableLPT()": FunctionFragment;
        "currentTransactionIndex()": FunctionFragment;
        "decimals()": FunctionFragment;
        "decreaseAllowance(address,uint256)": FunctionFragment;
        "depositedToken0()": FunctionFragment;
        "depositedToken1()": FunctionFragment;
        "depositors(address)": FunctionFragment;
        "getTWAPTick()": FunctionFragment;
        "increaseAllowance(address,uint256)": FunctionFragment;
        "initialize(bytes)": FunctionFragment;
        "name()": FunctionFragment;
        "owner()": FunctionFragment;
        "promisedToken0()": FunctionFragment;
        "promisedToken1()": FunctionFragment;
        "queueDeposit(uint256,uint256)": FunctionFragment;
        "queueWithdrawal(uint256)": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "steerPromisedT0()": FunctionFragment;
        "steerPromisedT1()": FunctionFragment;
        "steerPullFees()": FunctionFragment;
        "strategistPromisedT0()": FunctionFragment;
        "strategistPromisedT1()": FunctionFragment;
        "strategistPullFees()": FunctionFragment;
        "symbol()": FunctionFragment;
        "tendVaults()": FunctionFragment;
        "ticksPerBin()": FunctionFragment;
        "token0()": FunctionFragment;
        "token1()": FunctionFragment;
        "totalSupply()": FunctionFragment;
        "transactions(uint256)": FunctionFragment;
        "transfer(address,uint256)": FunctionFragment;
        "transferFrom(address,address,uint256)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "uniswapV3MintCallback(uint256,uint256,bytes)": FunctionFragment;
        "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment;
        "update(int24,uint32[])": FunctionFragment;
        "vaultRegistry()": FunctionFragment;
        "withdrawers(address)": FunctionFragment;
    };
    encodeFunctionData(functionFragment: "FEE", values?: undefined): string;
    encodeFunctionData(functionFragment: "LPTqueuedForWithdrawal", values?: undefined): string;
    encodeFunctionData(functionFragment: "POOL", values?: undefined): string;
    encodeFunctionData(functionFragment: "activeBins", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "activeStartTick", values?: undefined): string;
    encodeFunctionData(functionFragment: "allowance", values: [string, string]): string;
    encodeFunctionData(functionFragment: "approve", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
    encodeFunctionData(functionFragment: "binRegistry", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "cancelQueuedDeposit", values?: undefined): string;
    encodeFunctionData(functionFragment: "cancelQueuedWithdrawal", values?: undefined): string;
    encodeFunctionData(functionFragment: "claimLPTokensFromDeposit", values?: undefined): string;
    encodeFunctionData(functionFragment: "claimWithdrawal", values?: undefined): string;
    encodeFunctionData(functionFragment: "claimableLPT", values?: undefined): string;
    encodeFunctionData(functionFragment: "currentTransactionIndex", values?: undefined): string;
    encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
    encodeFunctionData(functionFragment: "decreaseAllowance", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "depositedToken0", values?: undefined): string;
    encodeFunctionData(functionFragment: "depositedToken1", values?: undefined): string;
    encodeFunctionData(functionFragment: "depositors", values: [string]): string;
    encodeFunctionData(functionFragment: "getTWAPTick", values?: undefined): string;
    encodeFunctionData(functionFragment: "increaseAllowance", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "initialize", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "name", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "promisedToken0", values?: undefined): string;
    encodeFunctionData(functionFragment: "promisedToken1", values?: undefined): string;
    encodeFunctionData(functionFragment: "queueDeposit", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "queueWithdrawal", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "steerPromisedT0", values?: undefined): string;
    encodeFunctionData(functionFragment: "steerPromisedT1", values?: undefined): string;
    encodeFunctionData(functionFragment: "steerPullFees", values?: undefined): string;
    encodeFunctionData(functionFragment: "strategistPromisedT0", values?: undefined): string;
    encodeFunctionData(functionFragment: "strategistPromisedT1", values?: undefined): string;
    encodeFunctionData(functionFragment: "strategistPullFees", values?: undefined): string;
    encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
    encodeFunctionData(functionFragment: "tendVaults", values?: undefined): string;
    encodeFunctionData(functionFragment: "ticksPerBin", values?: undefined): string;
    encodeFunctionData(functionFragment: "token0", values?: undefined): string;
    encodeFunctionData(functionFragment: "token1", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string;
    encodeFunctionData(functionFragment: "transactions", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "transfer", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferFrom", values: [string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
    encodeFunctionData(functionFragment: "uniswapV3MintCallback", values: [BigNumberish, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "uniswapV3SwapCallback", values: [BigNumberish, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "update", values: [BigNumberish, BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "vaultRegistry", values?: undefined): string;
    encodeFunctionData(functionFragment: "withdrawers", values: [string]): string;
    decodeFunctionResult(functionFragment: "FEE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "LPTqueuedForWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "POOL", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "activeBins", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "activeStartTick", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "binRegistry", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cancelQueuedDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cancelQueuedWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimLPTokensFromDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimableLPT", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "currentTransactionIndex", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decreaseAllowance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositedToken0", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositedToken1", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositors", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTWAPTick", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increaseAllowance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "promisedToken0", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "promisedToken1", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "queueDeposit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "queueWithdrawal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "steerPromisedT0", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "steerPromisedT1", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "steerPullFees", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "strategistPromisedT0", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "strategistPromisedT1", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "strategistPullFees", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tendVaults", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "ticksPerBin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transactions", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "uniswapV3MintCallback", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "uniswapV3SwapCallback", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "update", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vaultRegistry", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawers", data: BytesLike): Result;
    events: {
        "Approval(address,address,uint256)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "SteerPulled(uint256,uint256)": EventFragment;
        "StrategistPulled(uint256,uint256)": EventFragment;
        "Transfer(address,address,uint256)": EventFragment;
        "VaultReport(uint256,uint256,uint256,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SteerPulled"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "StrategistPulled"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "VaultReport"): EventFragment;
}
export declare type ApprovalEvent = TypedEvent<[
    string,
    string,
    BigNumber
], {
    owner: string;
    spender: string;
    value: BigNumber;
}>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export declare type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], {
    previousOwner: string;
    newOwner: string;
}>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export declare type SteerPulledEvent = TypedEvent<[
    BigNumber,
    BigNumber
], {
    amount0: BigNumber;
    amount1: BigNumber;
}>;
export declare type SteerPulledEventFilter = TypedEventFilter<SteerPulledEvent>;
export declare type StrategistPulledEvent = TypedEvent<[
    BigNumber,
    BigNumber
], {
    amount0: BigNumber;
    amount1: BigNumber;
}>;
export declare type StrategistPulledEventFilter = TypedEventFilter<StrategistPulledEvent>;
export declare type TransferEvent = TypedEvent<[
    string,
    string,
    BigNumber
], {
    from: string;
    to: string;
    value: BigNumber;
}>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export declare type VaultReportEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], {
    lastT0: BigNumber;
    lastT1: BigNumber;
    newT0: BigNumber;
    newT1: BigNumber;
}>;
export declare type VaultReportEventFilter = TypedEventFilter<VaultReportEvent>;
export interface V3StrategyAndVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: V3StrategyAndVaultInterface;
    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: {
        FEE(overrides?: CallOverrides): Promise<[number]>;
        LPTqueuedForWithdrawal(overrides?: CallOverrides): Promise<[BigNumber]>;
        POOL(overrides?: CallOverrides): Promise<[string]>;
        activeBins(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
        activeStartTick(overrides?: CallOverrides): Promise<[number]>;
        allowance(owner: string, spender: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(spender: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        binRegistry(arg0: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        cancelQueuedDeposit(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        cancelQueuedWithdrawal(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        claimLPTokensFromDeposit(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        claimWithdrawal(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        claimableLPT(overrides?: CallOverrides): Promise<[BigNumber]>;
        currentTransactionIndex(overrides?: CallOverrides): Promise<[BigNumber]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: string, subtractedValue: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        depositedToken0(overrides?: CallOverrides): Promise<[BigNumber]>;
        depositedToken1(overrides?: CallOverrides): Promise<[BigNumber]>;
        depositors(arg0: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            token0In: BigNumber;
            token1In: BigNumber;
            transactionIndex: BigNumber;
        }>;
        getTWAPTick(overrides?: CallOverrides): Promise<[number]>;
        increaseAllowance(spender: string, addedValue: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        initialize(_params: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        promisedToken0(overrides?: CallOverrides): Promise<[BigNumber]>;
        promisedToken1(overrides?: CallOverrides): Promise<[BigNumber]>;
        queueDeposit(token0Amount: BigNumberish, token1Amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        queueWithdrawal(_LPTs: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        steerPromisedT0(overrides?: CallOverrides): Promise<[BigNumber]>;
        steerPromisedT1(overrides?: CallOverrides): Promise<[BigNumber]>;
        steerPullFees(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        strategistPromisedT0(overrides?: CallOverrides): Promise<[BigNumber]>;
        strategistPromisedT1(overrides?: CallOverrides): Promise<[BigNumber]>;
        strategistPullFees(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        tendVaults(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        ticksPerBin(overrides?: CallOverrides): Promise<[number]>;
        token0(overrides?: CallOverrides): Promise<[string]>;
        token1(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transactions(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            depositT0ValuePerLPT: BigNumber;
            depositT1ValuePerLPT: BigNumber;
            withdrawT0EarnedPerLPT: BigNumber;
            withdrawT1EarnedPerLPT: BigNumber;
        }>;
        transfer(to: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        transferFrom(from: string, to: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        uniswapV3MintCallback(amount0Owed: BigNumberish, amount1Owed: BigNumberish, data: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        uniswapV3SwapCallback(amount0Delta: BigNumberish, amount1Delta: BigNumberish, _data: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        update(startTick: BigNumberish, newBins: BigNumberish[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        vaultRegistry(overrides?: CallOverrides): Promise<[string]>;
        withdrawers(arg0: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            LPTs: BigNumber;
            transactionIndex: BigNumber;
        }>;
    };
    FEE(overrides?: CallOverrides): Promise<number>;
    LPTqueuedForWithdrawal(overrides?: CallOverrides): Promise<BigNumber>;
    POOL(overrides?: CallOverrides): Promise<string>;
    activeBins(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
    activeStartTick(overrides?: CallOverrides): Promise<number>;
    allowance(owner: string, spender: string, overrides?: CallOverrides): Promise<BigNumber>;
    approve(spender: string, amount: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
    binRegistry(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    cancelQueuedDeposit(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    cancelQueuedWithdrawal(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    claimLPTokensFromDeposit(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    claimWithdrawal(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    claimableLPT(overrides?: CallOverrides): Promise<BigNumber>;
    currentTransactionIndex(overrides?: CallOverrides): Promise<BigNumber>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: string, subtractedValue: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    depositedToken0(overrides?: CallOverrides): Promise<BigNumber>;
    depositedToken1(overrides?: CallOverrides): Promise<BigNumber>;
    depositors(arg0: string, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        token0In: BigNumber;
        token1In: BigNumber;
        transactionIndex: BigNumber;
    }>;
    getTWAPTick(overrides?: CallOverrides): Promise<number>;
    increaseAllowance(spender: string, addedValue: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    initialize(_params: BytesLike, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    promisedToken0(overrides?: CallOverrides): Promise<BigNumber>;
    promisedToken1(overrides?: CallOverrides): Promise<BigNumber>;
    queueDeposit(token0Amount: BigNumberish, token1Amount: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    queueWithdrawal(_LPTs: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    steerPromisedT0(overrides?: CallOverrides): Promise<BigNumber>;
    steerPromisedT1(overrides?: CallOverrides): Promise<BigNumber>;
    steerPullFees(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    strategistPromisedT0(overrides?: CallOverrides): Promise<BigNumber>;
    strategistPromisedT1(overrides?: CallOverrides): Promise<BigNumber>;
    strategistPullFees(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    symbol(overrides?: CallOverrides): Promise<string>;
    tendVaults(overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    ticksPerBin(overrides?: CallOverrides): Promise<number>;
    token0(overrides?: CallOverrides): Promise<string>;
    token1(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transactions(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        depositT0ValuePerLPT: BigNumber;
        depositT1ValuePerLPT: BigNumber;
        withdrawT0EarnedPerLPT: BigNumber;
        withdrawT1EarnedPerLPT: BigNumber;
    }>;
    transfer(to: string, amount: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    transferFrom(from: string, to: string, amount: BigNumberish, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    uniswapV3MintCallback(amount0Owed: BigNumberish, amount1Owed: BigNumberish, data: BytesLike, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    uniswapV3SwapCallback(amount0Delta: BigNumberish, amount1Delta: BigNumberish, _data: BytesLike, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    update(startTick: BigNumberish, newBins: BigNumberish[], overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    vaultRegistry(overrides?: CallOverrides): Promise<string>;
    withdrawers(arg0: string, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        LPTs: BigNumber;
        transactionIndex: BigNumber;
    }>;
    callStatic: {
        FEE(overrides?: CallOverrides): Promise<number>;
        LPTqueuedForWithdrawal(overrides?: CallOverrides): Promise<BigNumber>;
        POOL(overrides?: CallOverrides): Promise<string>;
        activeBins(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
        activeStartTick(overrides?: CallOverrides): Promise<number>;
        allowance(owner: string, spender: string, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: string, amount: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
        binRegistry(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        cancelQueuedDeposit(overrides?: CallOverrides): Promise<void>;
        cancelQueuedWithdrawal(overrides?: CallOverrides): Promise<void>;
        claimLPTokensFromDeposit(overrides?: CallOverrides): Promise<BigNumber>;
        claimWithdrawal(overrides?: CallOverrides): Promise<void>;
        claimableLPT(overrides?: CallOverrides): Promise<BigNumber>;
        currentTransactionIndex(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: string, subtractedValue: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        depositedToken0(overrides?: CallOverrides): Promise<BigNumber>;
        depositedToken1(overrides?: CallOverrides): Promise<BigNumber>;
        depositors(arg0: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            token0In: BigNumber;
            token1In: BigNumber;
            transactionIndex: BigNumber;
        }>;
        getTWAPTick(overrides?: CallOverrides): Promise<number>;
        increaseAllowance(spender: string, addedValue: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        initialize(_params: BytesLike, overrides?: CallOverrides): Promise<void>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        promisedToken0(overrides?: CallOverrides): Promise<BigNumber>;
        promisedToken1(overrides?: CallOverrides): Promise<BigNumber>;
        queueDeposit(token0Amount: BigNumberish, token1Amount: BigNumberish, overrides?: CallOverrides): Promise<void>;
        queueWithdrawal(_LPTs: BigNumberish, overrides?: CallOverrides): Promise<void>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        steerPromisedT0(overrides?: CallOverrides): Promise<BigNumber>;
        steerPromisedT1(overrides?: CallOverrides): Promise<BigNumber>;
        steerPullFees(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            value0: BigNumber;
            value1: BigNumber;
        }>;
        strategistPromisedT0(overrides?: CallOverrides): Promise<BigNumber>;
        strategistPromisedT1(overrides?: CallOverrides): Promise<BigNumber>;
        strategistPullFees(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            value0: BigNumber;
            value1: BigNumber;
        }>;
        symbol(overrides?: CallOverrides): Promise<string>;
        tendVaults(overrides?: CallOverrides): Promise<void>;
        ticksPerBin(overrides?: CallOverrides): Promise<number>;
        token0(overrides?: CallOverrides): Promise<string>;
        token1(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transactions(arg0: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            depositT0ValuePerLPT: BigNumber;
            depositT1ValuePerLPT: BigNumber;
            withdrawT0EarnedPerLPT: BigNumber;
            withdrawT1EarnedPerLPT: BigNumber;
        }>;
        transfer(to: string, amount: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(from: string, to: string, amount: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        transferOwnership(newOwner: string, overrides?: CallOverrides): Promise<void>;
        uniswapV3MintCallback(amount0Owed: BigNumberish, amount1Owed: BigNumberish, data: BytesLike, overrides?: CallOverrides): Promise<void>;
        uniswapV3SwapCallback(amount0Delta: BigNumberish, amount1Delta: BigNumberish, _data: BytesLike, overrides?: CallOverrides): Promise<void>;
        update(startTick: BigNumberish, newBins: BigNumberish[], overrides?: CallOverrides): Promise<void>;
        vaultRegistry(overrides?: CallOverrides): Promise<string>;
        withdrawers(arg0: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            LPTs: BigNumber;
            transactionIndex: BigNumber;
        }>;
    };
    filters: {
        "Approval(address,address,uint256)"(owner?: string | null, spender?: string | null, value?: null): ApprovalEventFilter;
        Approval(owner?: string | null, spender?: string | null, value?: null): ApprovalEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
        "SteerPulled(uint256,uint256)"(amount0?: null, amount1?: null): SteerPulledEventFilter;
        SteerPulled(amount0?: null, amount1?: null): SteerPulledEventFilter;
        "StrategistPulled(uint256,uint256)"(amount0?: null, amount1?: null): StrategistPulledEventFilter;
        StrategistPulled(amount0?: null, amount1?: null): StrategistPulledEventFilter;
        "Transfer(address,address,uint256)"(from?: string | null, to?: string | null, value?: null): TransferEventFilter;
        Transfer(from?: string | null, to?: string | null, value?: null): TransferEventFilter;
        "VaultReport(uint256,uint256,uint256,uint256)"(lastT0?: null, lastT1?: null, newT0?: null, newT1?: null): VaultReportEventFilter;
        VaultReport(lastT0?: null, lastT1?: null, newT0?: null, newT1?: null): VaultReportEventFilter;
    };
    estimateGas: {
        FEE(overrides?: CallOverrides): Promise<BigNumber>;
        LPTqueuedForWithdrawal(overrides?: CallOverrides): Promise<BigNumber>;
        POOL(overrides?: CallOverrides): Promise<BigNumber>;
        activeBins(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        activeStartTick(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(owner: string, spender: string, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
        binRegistry(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        cancelQueuedDeposit(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        cancelQueuedWithdrawal(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        claimLPTokensFromDeposit(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        claimWithdrawal(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        claimableLPT(overrides?: CallOverrides): Promise<BigNumber>;
        currentTransactionIndex(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: string, subtractedValue: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        depositedToken0(overrides?: CallOverrides): Promise<BigNumber>;
        depositedToken1(overrides?: CallOverrides): Promise<BigNumber>;
        depositors(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        getTWAPTick(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: string, addedValue: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        initialize(_params: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        promisedToken0(overrides?: CallOverrides): Promise<BigNumber>;
        promisedToken1(overrides?: CallOverrides): Promise<BigNumber>;
        queueDeposit(token0Amount: BigNumberish, token1Amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        queueWithdrawal(_LPTs: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        steerPromisedT0(overrides?: CallOverrides): Promise<BigNumber>;
        steerPromisedT1(overrides?: CallOverrides): Promise<BigNumber>;
        steerPullFees(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        strategistPromisedT0(overrides?: CallOverrides): Promise<BigNumber>;
        strategistPromisedT1(overrides?: CallOverrides): Promise<BigNumber>;
        strategistPullFees(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        tendVaults(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        ticksPerBin(overrides?: CallOverrides): Promise<BigNumber>;
        token0(overrides?: CallOverrides): Promise<BigNumber>;
        token1(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transactions(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        transfer(to: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        transferFrom(from: string, to: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        uniswapV3MintCallback(amount0Owed: BigNumberish, amount1Owed: BigNumberish, data: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        uniswapV3SwapCallback(amount0Delta: BigNumberish, amount1Delta: BigNumberish, _data: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        update(startTick: BigNumberish, newBins: BigNumberish[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        vaultRegistry(overrides?: CallOverrides): Promise<BigNumber>;
        withdrawers(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        FEE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        LPTqueuedForWithdrawal(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        POOL(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activeBins(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activeStartTick(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowance(owner: string, spender: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(spender: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        binRegistry(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cancelQueuedDeposit(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        cancelQueuedWithdrawal(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        claimLPTokensFromDeposit(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        claimWithdrawal(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        claimableLPT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentTransactionIndex(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: string, subtractedValue: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        depositedToken0(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositedToken1(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositors(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTWAPTick(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(spender: string, addedValue: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_params: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        promisedToken0(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        promisedToken1(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        queueDeposit(token0Amount: BigNumberish, token1Amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        queueWithdrawal(_LPTs: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        steerPromisedT0(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        steerPromisedT1(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        steerPullFees(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        strategistPromisedT0(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        strategistPromisedT1(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        strategistPullFees(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tendVaults(overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        ticksPerBin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        token0(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        token1(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transactions(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(to: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(from: string, to: string, amount: BigNumberish, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        uniswapV3MintCallback(amount0Owed: BigNumberish, amount1Owed: BigNumberish, data: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        uniswapV3SwapCallback(amount0Delta: BigNumberish, amount1Delta: BigNumberish, _data: BytesLike, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        update(startTick: BigNumberish, newBins: BigNumberish[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        vaultRegistry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawers(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
