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 interface DCAHubConfigHandlerInterface 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;
        "getRoleAdmin(bytes32)": FunctionFragment;
        "grantRole(bytes32,address)": FunctionFragment;
        "hasRole(bytes32,address)": FunctionFragment;
        "oracle()": FunctionFragment;
        "pause()": FunctionFragment;
        "paused()": FunctionFragment;
        "platformBalance(address)": FunctionFragment;
        "platformFeeRatio()": 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;
        "tokenMagnitude(address)": FunctionFragment;
        "unpause()": 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" | "getRoleAdmin" | "grantRole" | "hasRole" | "oracle" | "pause" | "paused" | "platformBalance" | "platformFeeRatio" | "removeSwapIntervalsFromAllowedList" | "renounceRole" | "revokeRole" | "setAllowedTokens" | "setOracle" | "setPlatformFeeRatio" | "setSwapFee" | "supportsInterface" | "swapAmountDelta" | "swapData" | "swapFee" | "tokenMagnitude" | "unpause"): 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: "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: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "platformBalance", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "platformFeeRatio", values?: undefined): 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: "tokenMagnitude", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): 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: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformBalance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformFeeRatio", 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: "tokenMagnitude", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
    events: {
        "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;
        "TokensAllowedUpdated(address[],bool[])": EventFragment;
        "Unpaused(address)": 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: "TokensAllowedUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
}
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 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 DCAHubConfigHandler extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: DCAHubConfigHandlerInterface;
    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]>;
        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]>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        platformFeeRatio(overrides?: CallOverrides): Promise<[number]>;
        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]>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        unpause(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>;
    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>;
    oracle(overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    platformFeeRatio(overrides?: CallOverrides): Promise<number>;
    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>;
    tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    unpause(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>;
        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>;
        oracle(overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        platformFeeRatio(overrides?: CallOverrides): Promise<number>;
        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>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "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;
        "TokensAllowedUpdated(address[],bool[])"(tokens?: null, allowed?: null): TokensAllowedUpdatedEventFilter;
        TokensAllowedUpdated(tokens?: null, allowed?: null): TokensAllowedUpdatedEventFilter;
        "Unpaused(address)"(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    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>;
        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>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        platformFeeRatio(overrides?: CallOverrides): 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>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(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>;
        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>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platformBalance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platformFeeRatio(overrides?: CallOverrides): 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>;
        tokenMagnitude(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=DCAHubConfigHandler.d.ts.map