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 IDCAHubConfigHandlerInterface extends utils.Interface {
    functions: {
        "MAX_FEE()": FunctionFragment;
        "MAX_PLATFORM_FEE_RATIO()": FunctionFragment;
        "addSwapIntervalsToAllowedList(uint32[])": FunctionFragment;
        "allowedSwapIntervals()": FunctionFragment;
        "allowedTokens(address)": FunctionFragment;
        "oracle()": FunctionFragment;
        "pause()": FunctionFragment;
        "paused()": FunctionFragment;
        "platformFeeRatio()": FunctionFragment;
        "removeSwapIntervalsFromAllowedList(uint32[])": FunctionFragment;
        "setOracle(address)": FunctionFragment;
        "setPlatformFeeRatio(uint16)": FunctionFragment;
        "setSwapFee(uint32)": FunctionFragment;
        "swapFee()": FunctionFragment;
        "tokenMagnitude(address)": FunctionFragment;
        "unpause()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "MAX_FEE" | "MAX_PLATFORM_FEE_RATIO" | "addSwapIntervalsToAllowedList" | "allowedSwapIntervals" | "allowedTokens" | "oracle" | "pause" | "paused" | "platformFeeRatio" | "removeSwapIntervalsFromAllowedList" | "setOracle" | "setPlatformFeeRatio" | "setSwapFee" | "swapFee" | "tokenMagnitude" | "unpause"): FunctionFragment;
    encodeFunctionData(functionFragment: "MAX_FEE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MAX_PLATFORM_FEE_RATIO", values?: undefined): string;
    encodeFunctionData(functionFragment: "addSwapIntervalsToAllowedList", values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "allowedSwapIntervals", values?: undefined): string;
    encodeFunctionData(functionFragment: "allowedTokens", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "platformFeeRatio", values?: undefined): string;
    encodeFunctionData(functionFragment: "removeSwapIntervalsFromAllowedList", values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "setOracle", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setPlatformFeeRatio", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setSwapFee", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "swapFee", values?: undefined): string;
    encodeFunctionData(functionFragment: "tokenMagnitude", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
    decodeFunctionResult(functionFragment: "MAX_FEE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MAX_PLATFORM_FEE_RATIO", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addSwapIntervalsToAllowedList", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowedSwapIntervals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowedTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "platformFeeRatio", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeSwapIntervalsFromAllowedList", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setOracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPlatformFeeRatio", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setSwapFee", 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;
        "PlatformFeeRatioSet(uint16)": EventFragment;
        "SwapFeeSet(uint32)": EventFragment;
        "SwapIntervalsAllowed(uint32[])": EventFragment;
        "SwapIntervalsForbidden(uint32[])": EventFragment;
        "TokensAllowedUpdated(address[],bool[])": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "OracleSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PlatformFeeRatioSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapFeeSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapIntervalsAllowed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SwapIntervalsForbidden"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokensAllowedUpdated"): EventFragment;
}
export interface OracleSetEventObject {
    oracle: string;
}
export declare type OracleSetEvent = TypedEvent<[string], OracleSetEventObject>;
export declare type OracleSetEventFilter = TypedEventFilter<OracleSetEvent>;
export interface PlatformFeeRatioSetEventObject {
    platformFeeRatio: number;
}
export declare type PlatformFeeRatioSetEvent = TypedEvent<[
    number
], PlatformFeeRatioSetEventObject>;
export declare type PlatformFeeRatioSetEventFilter = TypedEventFilter<PlatformFeeRatioSetEvent>;
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 IDCAHubConfigHandler extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IDCAHubConfigHandlerInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        MAX_FEE(overrides?: CallOverrides): Promise<[number] & {
            maxFee: number;
        }>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<[number]>;
        addSwapIntervalsToAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<[string] & {
            allowedSwapIntervals: string;
        }>;
        allowedTokens(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        oracle(overrides?: CallOverrides): Promise<[string] & {
            oracle: string;
        }>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean] & {
            isPaused: boolean;
        }>;
        platformFeeRatio(overrides?: CallOverrides): Promise<[number]>;
        removeSwapIntervalsFromAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], 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(fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        swapFee(overrides?: CallOverrides): Promise<[number] & {
            swapFee: number;
        }>;
        tokenMagnitude(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    MAX_FEE(overrides?: CallOverrides): Promise<number>;
    MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<number>;
    addSwapIntervalsToAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowedSwapIntervals(overrides?: CallOverrides): Promise<string>;
    allowedTokens(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    oracle(overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    platformFeeRatio(overrides?: CallOverrides): Promise<number>;
    removeSwapIntervalsFromAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], 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(fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    swapFee(overrides?: CallOverrides): Promise<number>;
    tokenMagnitude(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        MAX_FEE(overrides?: CallOverrides): Promise<number>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<number>;
        addSwapIntervalsToAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<string>;
        allowedTokens(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        oracle(overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        platformFeeRatio(overrides?: CallOverrides): Promise<number>;
        removeSwapIntervalsFromAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        setOracle(oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPlatformFeeRatio(platformFeeRatio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setSwapFee(fee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        swapFee(overrides?: CallOverrides): Promise<number>;
        tokenMagnitude(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "OracleSet(address)"(oracle?: null): OracleSetEventFilter;
        OracleSet(oracle?: null): OracleSetEventFilter;
        "PlatformFeeRatioSet(uint16)"(platformFeeRatio?: null): PlatformFeeRatioSetEventFilter;
        PlatformFeeRatioSet(platformFeeRatio?: null): PlatformFeeRatioSetEventFilter;
        "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;
    };
    estimateGas: {
        MAX_FEE(overrides?: CallOverrides): Promise<BigNumber>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<BigNumber>;
        addSwapIntervalsToAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<BigNumber>;
        allowedTokens(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        platformFeeRatio(overrides?: CallOverrides): Promise<BigNumber>;
        removeSwapIntervalsFromAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], 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(fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        swapFee(overrides?: CallOverrides): Promise<BigNumber>;
        tokenMagnitude(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        MAX_FEE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAX_PLATFORM_FEE_RATIO(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addSwapIntervalsToAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowedSwapIntervals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowedTokens(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        platformFeeRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeSwapIntervalsFromAllowedList(swapIntervals: PromiseOrValue<BigNumberish>[], 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(fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        swapFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenMagnitude(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=IDCAHubConfigHandler.d.ts.map