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 IDCAPermissionManager {
    type PermissionSetStruct = {
        operator: PromiseOrValue<string>;
        permissions: PromiseOrValue<BigNumberish>[];
    };
    type PermissionSetStructOutput = [string, number[]] & {
        operator: string;
        permissions: number[];
    };
}
export declare namespace IDCAHubPositionHandler {
    type PositionSetStruct = {
        token: PromiseOrValue<string>;
        positionIds: PromiseOrValue<BigNumberish>[];
    };
    type PositionSetStructOutput = [string, BigNumber[]] & {
        token: string;
        positionIds: BigNumber[];
    };
    type UserPositionStruct = {
        from: PromiseOrValue<string>;
        to: PromiseOrValue<string>;
        swapInterval: PromiseOrValue<BigNumberish>;
        swapsExecuted: PromiseOrValue<BigNumberish>;
        swapped: PromiseOrValue<BigNumberish>;
        swapsLeft: PromiseOrValue<BigNumberish>;
        remaining: PromiseOrValue<BigNumberish>;
        rate: PromiseOrValue<BigNumberish>;
    };
    type UserPositionStructOutput = [
        string,
        string,
        number,
        number,
        BigNumber,
        number,
        BigNumber,
        BigNumber
    ] & {
        from: string;
        to: string;
        swapInterval: number;
        swapsExecuted: number;
        swapped: BigNumber;
        swapsLeft: number;
        remaining: BigNumber;
        rate: BigNumber;
    };
}
export interface DCAHubPositionHandlerInterface extends utils.Interface {
    functions: {
        "DEFAULT_ADMIN_ROLE()": FunctionFragment;
        "IMMEDIATE_ROLE()": FunctionFragment;
        "MAX_FEE()": FunctionFragment;
        "MAX_PLATFORM_FEE_RATIO()": FunctionFragment;
        "PLATFORM_WITHDRAW_ROLE()": FunctionFragment;
        "PRIVILEGED_SWAPPER_ROLE()": FunctionFragment;
        "TIME_LOCKED_ROLE()": FunctionFragment;
        "accumRatio(address,address,bytes1,uint32)": FunctionFragment;
        "activeSwapIntervals(address,address)": FunctionFragment;
        "addSwapIntervalsToAllowedList(uint32[])": FunctionFragment;
        "allowedSwapIntervals()": FunctionFragment;
        "allowedTokens(address)": FunctionFragment;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])": FunctionFragment;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)": FunctionFragment;
        "getRoleAdmin(bytes32)": FunctionFragment;
        "grantRole(bytes32,address)": FunctionFragment;
        "hasRole(bytes32,address)": FunctionFragment;
        "increasePosition(uint256,uint256,uint32)": FunctionFragment;
        "oracle()": FunctionFragment;
        "pause()": FunctionFragment;
        "paused()": FunctionFragment;
        "permissionManager()": FunctionFragment;
        "platformBalance(address)": FunctionFragment;
        "platformFeeRatio()": FunctionFragment;
        "reducePosition(uint256,uint256,uint32,address)": FunctionFragment;
        "removeSwapIntervalsFromAllowedList(uint32[])": FunctionFragment;
        "renounceRole(bytes32,address)": FunctionFragment;
        "revokeRole(bytes32,address)": FunctionFragment;
        "setAllowedTokens(address[],bool[])": FunctionFragment;
        "setOracle(address)": FunctionFragment;
        "setPlatformFeeRatio(uint16)": FunctionFragment;
        "setSwapFee(uint32)": FunctionFragment;
        "supportsInterface(bytes4)": FunctionFragment;
        "swapAmountDelta(address,address,bytes1,uint32)": FunctionFragment;
        "swapData(address,address,bytes1)": FunctionFragment;
        "swapFee()": FunctionFragment;
        "terminate(uint256,address,address)": FunctionFragment;
        "tokenMagnitude(address)": FunctionFragment;
        "totalCreatedPositions()": FunctionFragment;
        "unpause()": FunctionFragment;
        "userPosition(uint256)": FunctionFragment;
        "withdrawSwapped(uint256,address)": FunctionFragment;
        "withdrawSwappedMany((address,uint256[])[],address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "DEFAULT_ADMIN_ROLE" | "IMMEDIATE_ROLE" | "MAX_FEE" | "MAX_PLATFORM_FEE_RATIO" | "PLATFORM_WITHDRAW_ROLE" | "PRIVILEGED_SWAPPER_ROLE" | "TIME_LOCKED_ROLE" | "accumRatio" | "activeSwapIntervals" | "addSwapIntervalsToAllowedList" | "allowedSwapIntervals" | "allowedTokens" | "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])" | "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)" | "getRoleAdmin" | "grantRole" | "hasRole" | "increasePosition" | "oracle" | "pause" | "paused" | "permissionManager" | "platformBalance" | "platformFeeRatio" | "reducePosition" | "removeSwapIntervalsFromAllowedList" | "renounceRole" | "revokeRole" | "setAllowedTokens" | "setOracle" | "setPlatformFeeRatio" | "setSwapFee" | "supportsInterface" | "swapAmountDelta" | "swapData" | "swapFee" | "terminate" | "tokenMagnitude" | "totalCreatedPositions" | "unpause" | "userPosition" | "withdrawSwapped" | "withdrawSwappedMany"): FunctionFragment;
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "IMMEDIATE_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MAX_FEE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MAX_PLATFORM_FEE_RATIO", values?: undefined): string;
    encodeFunctionData(functionFragment: "PLATFORM_WITHDRAW_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "PRIVILEGED_SWAPPER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "TIME_LOCKED_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "accumRatio", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "activeSwapIntervals", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "addSwapIntervalsToAllowedList", values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "allowedSwapIntervals", values?: undefined): string;
    encodeFunctionData(functionFragment: "allowedTokens", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        IDCAPermissionManager.PermissionSetStruct[]
    ]): string;
    encodeFunctionData(functionFragment: "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        IDCAPermissionManager.PermissionSetStruct[],
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "grantRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "increasePosition", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "permissionManager", values?: undefined): string;
    encodeFunctionData(functionFragment: "platformBalance", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "platformFeeRatio", values?: undefined): string;
    encodeFunctionData(functionFragment: "reducePosition", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "removeSwapIntervalsFromAllowedList", values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "renounceRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "revokeRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setAllowedTokens", values: [PromiseOrValue<string>[], PromiseOrValue<boolean>[]]): string;
    encodeFunctionData(functionFragment: "setOracle", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setPlatformFeeRatio", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setSwapFee", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "swapAmountDelta", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "swapData", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "swapFee", values?: undefined): string;
    encodeFunctionData(functionFragment: "terminate", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "tokenMagnitude", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "totalCreatedPositions", values?: undefined): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
    encodeFunctionData(functionFragment: "userPosition", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "withdrawSwapped", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "withdrawSwappedMany", values: [IDCAHubPositionHandler.PositionSetStruct[], PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "IMMEDIATE_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MAX_FEE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MAX_PLATFORM_FEE_RATIO", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "PLATFORM_WITHDRAW_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "PRIVILEGED_SWAPPER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "TIME_LOCKED_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accumRatio", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "activeSwapIntervals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addSwapIntervalsToAllowedList", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowedSwapIntervals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowedTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increasePosition", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "permissionManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformBalance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformFeeRatio", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "reducePosition", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeSwapIntervalsFromAllowedList", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAllowedTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setOracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPlatformFeeRatio", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setSwapFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapAmountDelta", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapData", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapFee", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "terminate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenMagnitude", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalCreatedPositions", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userPosition", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawSwapped", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawSwappedMany", data: BytesLike): Result;
    events: {
        "Deposited(address,address,uint256,address,address,uint32,uint120,uint32,uint32,tuple[])": EventFragment;
        "Miscellaneous(uint256,bytes)": EventFragment;
        "Modified(address,uint256,uint120,uint32,uint32)": EventFragment;
        "OracleSet(address)": EventFragment;
        "Paused(address)": EventFragment;
        "PlatformFeeRatioSet(uint16)": EventFragment;
        "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
        "RoleGranted(bytes32,address,address)": EventFragment;
        "RoleRevoked(bytes32,address,address)": EventFragment;
        "SwapFeeSet(uint32)": EventFragment;
        "SwapIntervalsAllowed(uint32[])": EventFragment;
        "SwapIntervalsForbidden(uint32[])": EventFragment;
        "Terminated(address,address,address,uint256,uint256,uint256)": EventFragment;
        "TokensAllowedUpdated(address[],bool[])": EventFragment;
        "Unpaused(address)": EventFragment;
        "Withdrew(address,address,uint256,address,uint256)": EventFragment;
        "WithdrewMany(address,address,tuple[],uint256[])": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Deposited"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Miscellaneous"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Modified"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OracleSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PlatformFeeRatioSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapFeeSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapIntervalsAllowed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapIntervalsForbidden"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Terminated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokensAllowedUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Withdrew"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "WithdrewMany"): EventFragment;
}
export interface DepositedEventObject {
    depositor: string;
    owner: string;
    positionId: BigNumber;
    fromToken: string;
    toToken: string;
    swapInterval: number;
    rate: BigNumber;
    startingSwap: number;
    lastSwap: number;
    permissions: IDCAPermissionManager.PermissionSetStructOutput[];
}
export declare type DepositedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string,
    string,
    number,
    BigNumber,
    number,
    number,
    IDCAPermissionManager.PermissionSetStructOutput[]
], DepositedEventObject>;
export declare type DepositedEventFilter = TypedEventFilter<DepositedEvent>;
export interface MiscellaneousEventObject {
    positionId: BigNumber;
    data: string;
}
export declare type MiscellaneousEvent = TypedEvent<[
    BigNumber,
    string
], MiscellaneousEventObject>;
export declare type MiscellaneousEventFilter = TypedEventFilter<MiscellaneousEvent>;
export interface ModifiedEventObject {
    user: string;
    positionId: BigNumber;
    rate: BigNumber;
    startingSwap: number;
    lastSwap: number;
}
export declare type ModifiedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    number,
    number
], ModifiedEventObject>;
export declare type ModifiedEventFilter = TypedEventFilter<ModifiedEvent>;
export interface OracleSetEventObject {
    oracle: string;
}
export declare type OracleSetEvent = TypedEvent<[string], OracleSetEventObject>;
export declare type OracleSetEventFilter = TypedEventFilter<OracleSetEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface PlatformFeeRatioSetEventObject {
    platformFeeRatio: number;
}
export declare type PlatformFeeRatioSetEvent = TypedEvent<[
    number
], PlatformFeeRatioSetEventObject>;
export declare type PlatformFeeRatioSetEventFilter = TypedEventFilter<PlatformFeeRatioSetEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[
    string,
    string,
    string
], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[
    string,
    string,
    string
], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[
    string,
    string,
    string
], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface SwapFeeSetEventObject {
    feeSet: number;
}
export declare type SwapFeeSetEvent = TypedEvent<[number], SwapFeeSetEventObject>;
export declare type SwapFeeSetEventFilter = TypedEventFilter<SwapFeeSetEvent>;
export interface SwapIntervalsAllowedEventObject {
    swapIntervals: number[];
}
export declare type SwapIntervalsAllowedEvent = TypedEvent<[
    number[]
], SwapIntervalsAllowedEventObject>;
export declare type SwapIntervalsAllowedEventFilter = TypedEventFilter<SwapIntervalsAllowedEvent>;
export interface SwapIntervalsForbiddenEventObject {
    swapIntervals: number[];
}
export declare type SwapIntervalsForbiddenEvent = TypedEvent<[
    number[]
], SwapIntervalsForbiddenEventObject>;
export declare type SwapIntervalsForbiddenEventFilter = TypedEventFilter<SwapIntervalsForbiddenEvent>;
export interface TerminatedEventObject {
    user: string;
    recipientUnswapped: string;
    recipientSwapped: string;
    positionId: BigNumber;
    returnedUnswapped: BigNumber;
    returnedSwapped: BigNumber;
}
export declare type TerminatedEvent = TypedEvent<[
    string,
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber
], TerminatedEventObject>;
export declare type TerminatedEventFilter = TypedEventFilter<TerminatedEvent>;
export interface TokensAllowedUpdatedEventObject {
    tokens: string[];
    allowed: boolean[];
}
export declare type TokensAllowedUpdatedEvent = TypedEvent<[
    string[],
    boolean[]
], TokensAllowedUpdatedEventObject>;
export declare type TokensAllowedUpdatedEventFilter = TypedEventFilter<TokensAllowedUpdatedEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface WithdrewEventObject {
    withdrawer: string;
    recipient: string;
    positionId: BigNumber;
    token: string;
    amount: BigNumber;
}
export declare type WithdrewEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    string,
    BigNumber
], WithdrewEventObject>;
export declare type WithdrewEventFilter = TypedEventFilter<WithdrewEvent>;
export interface WithdrewManyEventObject {
    withdrawer: string;
    recipient: string;
    positions: IDCAHubPositionHandler.PositionSetStructOutput[];
    withdrew: BigNumber[];
}
export declare type WithdrewManyEvent = TypedEvent<[
    string,
    string,
    IDCAHubPositionHandler.PositionSetStructOutput[],
    BigNumber[]
], WithdrewManyEventObject>;
export declare type WithdrewManyEventFilter = TypedEventFilter<WithdrewManyEvent>;
export interface DCAHubPositionHandler extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: DCAHubPositionHandlerInterface;
    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: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        IMMEDIATE_ROLE(overrides?: CallOverrides): Promise<[string]>;
        MAX_FEE(overrides?: CallOverrides): Promise<[number]>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<[number]>;
        PLATFORM_WITHDRAW_ROLE(overrides?: CallOverrides): Promise<[string]>;
        PRIVILEGED_SWAPPER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        TIME_LOCKED_ROLE(overrides?: CallOverrides): Promise<[string]>;
        accumRatio(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            accumRatioAToB: BigNumber;
            accumRatioBToA: BigNumber;
        }>;
        activeSwapIntervals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        addSwapIntervalsToAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<[string]>;
        allowedTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], _miscellaneous: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        increasePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        permissionManager(overrides?: CallOverrides): Promise<[string]>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        platformFeeRatio(overrides?: CallOverrides): Promise<[number]>;
        reducePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeSwapIntervalsFromAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAllowedTokens(_tokens: PromiseOrValue<string>[], _allowed: PromiseOrValue<boolean>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPlatformFeeRatio(_platformFeeRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setSwapFee(_swapFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        swapAmountDelta(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            swapDeltaAToB: BigNumber;
            swapDeltaBToA: BigNumber;
        }>;
        swapData(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            number,
            BigNumber,
            number,
            BigNumber
        ] & {
            performedSwaps: number;
            nextAmountToSwapAToB: BigNumber;
            lastSwappedAt: number;
            nextAmountToSwapBToA: BigNumber;
        }>;
        swapFee(overrides?: CallOverrides): Promise<[number]>;
        terminate(_positionId: PromiseOrValue<BigNumberish>, _recipientUnswapped: PromiseOrValue<string>, _recipientSwapped: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalCreatedPositions(overrides?: CallOverrides): Promise<[BigNumber]>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userPosition(_positionId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            IDCAHubPositionHandler.UserPositionStructOutput
        ] & {
            _userPosition: IDCAHubPositionHandler.UserPositionStructOutput;
        }>;
        withdrawSwapped(_positionId: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawSwappedMany(_positions: IDCAHubPositionHandler.PositionSetStruct[], _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    IMMEDIATE_ROLE(overrides?: CallOverrides): Promise<string>;
    MAX_FEE(overrides?: CallOverrides): Promise<number>;
    MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<number>;
    PLATFORM_WITHDRAW_ROLE(overrides?: CallOverrides): Promise<string>;
    PRIVILEGED_SWAPPER_ROLE(overrides?: CallOverrides): Promise<string>;
    TIME_LOCKED_ROLE(overrides?: CallOverrides): Promise<string>;
    accumRatio(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        accumRatioAToB: BigNumber;
        accumRatioBToA: BigNumber;
    }>;
    activeSwapIntervals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    addSwapIntervalsToAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowedSwapIntervals(overrides?: CallOverrides): Promise<string>;
    allowedTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], _miscellaneous: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    increasePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    oracle(overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    permissionManager(overrides?: CallOverrides): Promise<string>;
    platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    platformFeeRatio(overrides?: CallOverrides): Promise<number>;
    reducePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeSwapIntervalsFromAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAllowedTokens(_tokens: PromiseOrValue<string>[], _allowed: PromiseOrValue<boolean>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPlatformFeeRatio(_platformFeeRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setSwapFee(_swapFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    swapAmountDelta(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        swapDeltaAToB: BigNumber;
        swapDeltaBToA: BigNumber;
    }>;
    swapData(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
        number,
        BigNumber,
        number,
        BigNumber
    ] & {
        performedSwaps: number;
        nextAmountToSwapAToB: BigNumber;
        lastSwappedAt: number;
        nextAmountToSwapBToA: BigNumber;
    }>;
    swapFee(overrides?: CallOverrides): Promise<number>;
    terminate(_positionId: PromiseOrValue<BigNumberish>, _recipientUnswapped: PromiseOrValue<string>, _recipientSwapped: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalCreatedPositions(overrides?: CallOverrides): Promise<BigNumber>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userPosition(_positionId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IDCAHubPositionHandler.UserPositionStructOutput>;
    withdrawSwapped(_positionId: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawSwappedMany(_positions: IDCAHubPositionHandler.PositionSetStruct[], _recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        IMMEDIATE_ROLE(overrides?: CallOverrides): Promise<string>;
        MAX_FEE(overrides?: CallOverrides): Promise<number>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<number>;
        PLATFORM_WITHDRAW_ROLE(overrides?: CallOverrides): Promise<string>;
        PRIVILEGED_SWAPPER_ROLE(overrides?: CallOverrides): Promise<string>;
        TIME_LOCKED_ROLE(overrides?: CallOverrides): Promise<string>;
        accumRatio(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            accumRatioAToB: BigNumber;
            accumRatioBToA: BigNumber;
        }>;
        activeSwapIntervals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        addSwapIntervalsToAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<string>;
        allowedTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], _miscellaneous: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        increasePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        oracle(overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        permissionManager(overrides?: CallOverrides): Promise<string>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        platformFeeRatio(overrides?: CallOverrides): Promise<number>;
        reducePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeSwapIntervalsFromAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setAllowedTokens(_tokens: PromiseOrValue<string>[], _allowed: PromiseOrValue<boolean>[], overrides?: CallOverrides): Promise<void>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPlatformFeeRatio(_platformFeeRatio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setSwapFee(_swapFee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        swapAmountDelta(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            swapDeltaAToB: BigNumber;
            swapDeltaBToA: BigNumber;
        }>;
        swapData(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[
            number,
            BigNumber,
            number,
            BigNumber
        ] & {
            performedSwaps: number;
            nextAmountToSwapAToB: BigNumber;
            lastSwappedAt: number;
            nextAmountToSwapBToA: BigNumber;
        }>;
        swapFee(overrides?: CallOverrides): Promise<number>;
        terminate(_positionId: PromiseOrValue<BigNumberish>, _recipientUnswapped: PromiseOrValue<string>, _recipientSwapped: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            _unswapped: BigNumber;
            _swapped: BigNumber;
        }>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalCreatedPositions(overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: CallOverrides): Promise<void>;
        userPosition(_positionId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IDCAHubPositionHandler.UserPositionStructOutput>;
        withdrawSwapped(_positionId: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawSwappedMany(_positions: IDCAHubPositionHandler.PositionSetStruct[], _recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
    };
    filters: {
        "Deposited(address,address,uint256,address,address,uint32,uint120,uint32,uint32,tuple[])"(depositor?: PromiseOrValue<string> | null, owner?: PromiseOrValue<string> | null, positionId?: null, fromToken?: null, toToken?: null, swapInterval?: null, rate?: null, startingSwap?: null, lastSwap?: null, permissions?: null): DepositedEventFilter;
        Deposited(depositor?: PromiseOrValue<string> | null, owner?: PromiseOrValue<string> | null, positionId?: null, fromToken?: null, toToken?: null, swapInterval?: null, rate?: null, startingSwap?: null, lastSwap?: null, permissions?: null): DepositedEventFilter;
        "Miscellaneous(uint256,bytes)"(positionId?: null, data?: null): MiscellaneousEventFilter;
        Miscellaneous(positionId?: null, data?: null): MiscellaneousEventFilter;
        "Modified(address,uint256,uint120,uint32,uint32)"(user?: PromiseOrValue<string> | null, positionId?: null, rate?: null, startingSwap?: null, lastSwap?: null): ModifiedEventFilter;
        Modified(user?: PromiseOrValue<string> | null, positionId?: null, rate?: null, startingSwap?: null, lastSwap?: null): ModifiedEventFilter;
        "OracleSet(address)"(oracle?: null): OracleSetEventFilter;
        OracleSet(oracle?: null): OracleSetEventFilter;
        "Paused(address)"(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        "PlatformFeeRatioSet(uint16)"(platformFeeRatio?: null): PlatformFeeRatioSetEventFilter;
        PlatformFeeRatioSet(platformFeeRatio?: null): PlatformFeeRatioSetEventFilter;
        "RoleAdminChanged(bytes32,bytes32,bytes32)"(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        "RoleGranted(bytes32,address,address)"(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        "RoleRevoked(bytes32,address,address)"(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        "SwapFeeSet(uint32)"(feeSet?: null): SwapFeeSetEventFilter;
        SwapFeeSet(feeSet?: null): SwapFeeSetEventFilter;
        "SwapIntervalsAllowed(uint32[])"(swapIntervals?: null): SwapIntervalsAllowedEventFilter;
        SwapIntervalsAllowed(swapIntervals?: null): SwapIntervalsAllowedEventFilter;
        "SwapIntervalsForbidden(uint32[])"(swapIntervals?: null): SwapIntervalsForbiddenEventFilter;
        SwapIntervalsForbidden(swapIntervals?: null): SwapIntervalsForbiddenEventFilter;
        "Terminated(address,address,address,uint256,uint256,uint256)"(user?: PromiseOrValue<string> | null, recipientUnswapped?: PromiseOrValue<string> | null, recipientSwapped?: PromiseOrValue<string> | null, positionId?: null, returnedUnswapped?: null, returnedSwapped?: null): TerminatedEventFilter;
        Terminated(user?: PromiseOrValue<string> | null, recipientUnswapped?: PromiseOrValue<string> | null, recipientSwapped?: PromiseOrValue<string> | null, positionId?: null, returnedUnswapped?: null, returnedSwapped?: null): TerminatedEventFilter;
        "TokensAllowedUpdated(address[],bool[])"(tokens?: null, allowed?: null): TokensAllowedUpdatedEventFilter;
        TokensAllowedUpdated(tokens?: null, allowed?: null): TokensAllowedUpdatedEventFilter;
        "Unpaused(address)"(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
        "Withdrew(address,address,uint256,address,uint256)"(withdrawer?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, positionId?: null, token?: null, amount?: null): WithdrewEventFilter;
        Withdrew(withdrawer?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, positionId?: null, token?: null, amount?: null): WithdrewEventFilter;
        "WithdrewMany(address,address,tuple[],uint256[])"(withdrawer?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, positions?: null, withdrew?: null): WithdrewManyEventFilter;
        WithdrewMany(withdrawer?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, positions?: null, withdrew?: null): WithdrewManyEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        IMMEDIATE_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_FEE(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<BigNumber>;
        PLATFORM_WITHDRAW_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        PRIVILEGED_SWAPPER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        TIME_LOCKED_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        accumRatio(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        activeSwapIntervals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        addSwapIntervalsToAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<BigNumber>;
        allowedTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], _miscellaneous: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increasePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        permissionManager(overrides?: CallOverrides): Promise<BigNumber>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        platformFeeRatio(overrides?: CallOverrides): Promise<BigNumber>;
        reducePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeSwapIntervalsFromAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAllowedTokens(_tokens: PromiseOrValue<string>[], _allowed: PromiseOrValue<boolean>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPlatformFeeRatio(_platformFeeRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setSwapFee(_swapFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        swapAmountDelta(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        swapData(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        swapFee(overrides?: CallOverrides): Promise<BigNumber>;
        terminate(_positionId: PromiseOrValue<BigNumberish>, _recipientUnswapped: PromiseOrValue<string>, _recipientSwapped: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalCreatedPositions(overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userPosition(_positionId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawSwapped(_positionId: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawSwappedMany(_positions: IDCAHubPositionHandler.PositionSetStruct[], _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        IMMEDIATE_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_FEE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PLATFORM_WITHDRAW_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PRIVILEGED_SWAPPER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        TIME_LOCKED_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accumRatio(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activeSwapIntervals(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addSwapIntervalsToAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowedTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[])"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        "deposit(address,address,uint256,uint32,uint32,address,(address,uint8[])[],bytes)"(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _amountOfSwaps: PromiseOrValue<BigNumberish>, _swapInterval: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], _miscellaneous: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increasePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        permissionManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platformFeeRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        reducePosition(_positionId: PromiseOrValue<BigNumberish>, _amount: PromiseOrValue<BigNumberish>, _newAmountOfSwaps: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeSwapIntervalsFromAllowedList(_swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAllowedTokens(_tokens: PromiseOrValue<string>[], _allowed: PromiseOrValue<boolean>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setOracle(_oracle: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPlatformFeeRatio(_platformFeeRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setSwapFee(_swapFee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        swapAmountDelta(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, arg3: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        swapData(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        swapFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        terminate(_positionId: PromiseOrValue<BigNumberish>, _recipientUnswapped: PromiseOrValue<string>, _recipientSwapped: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalCreatedPositions(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userPosition(_positionId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawSwapped(_positionId: PromiseOrValue<BigNumberish>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawSwappedMany(_positions: IDCAHubPositionHandler.PositionSetStruct[], _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=DCAHubPositionHandler.d.ts.map