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 DefiedgeManagerInterface extends utils.Interface {
    functions: {
        "ADMIN_ROLE()": FunctionFragment;
        "BURNER_ROLE()": FunctionFragment;
        "DEFAULT_ADMIN_ROLE()": FunctionFragment;
        "MANAGER_ROLE()": FunctionFragment;
        "MIN_DEVIATION()": FunctionFragment;
        "MIN_FEE()": FunctionFragment;
        "USER_WHITELIST_ROLE()": FunctionFragment;
        "acceptOperator()": FunctionFragment;
        "allowedDeviation()": FunctionFragment;
        "allowedSwapDeviation()": FunctionFragment;
        "changeFeeTo(address)": FunctionFragment;
        "changeLimit(uint256)": FunctionFragment;
        "changeManagementFeeRate(uint256)": FunctionFragment;
        "changeMaxSwapLimit(uint256)": FunctionFragment;
        "changeOperator(address)": FunctionFragment;
        "changePerformanceFeeRate(uint256)": FunctionFragment;
        "factory()": FunctionFragment;
        "feeTo()": FunctionFragment;
        "getRoleAdmin(bytes32)": FunctionFragment;
        "getRoleMember(bytes32,uint256)": FunctionFragment;
        "getRoleMemberCount(bytes32)": FunctionFragment;
        "grantRole(bytes32,address)": FunctionFragment;
        "hasRole(bytes32,address)": FunctionFragment;
        "increamentSwapCounter()": FunctionFragment;
        "isAllowedToBurn(address)": FunctionFragment;
        "isAllowedToManage(address)": FunctionFragment;
        "isStrategyPrivate()": FunctionFragment;
        "isUserWhiteListed(address)": FunctionFragment;
        "lastSwapTimestamp()": FunctionFragment;
        "limit()": FunctionFragment;
        "managementFeeRate()": FunctionFragment;
        "maxAllowedSwap()": FunctionFragment;
        "operator()": FunctionFragment;
        "pendingOperator()": FunctionFragment;
        "performanceFeeRate()": FunctionFragment;
        "renounceRole(bytes32,address)": FunctionFragment;
        "revokeRole(bytes32,address)": FunctionFragment;
        "strategy()": FunctionFragment;
        "swapCounter()": FunctionFragment;
        "updateStrategyMode(bool)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "ADMIN_ROLE" | "BURNER_ROLE" | "DEFAULT_ADMIN_ROLE" | "MANAGER_ROLE" | "MIN_DEVIATION" | "MIN_FEE" | "USER_WHITELIST_ROLE" | "acceptOperator" | "allowedDeviation" | "allowedSwapDeviation" | "changeFeeTo" | "changeLimit" | "changeManagementFeeRate" | "changeMaxSwapLimit" | "changeOperator" | "changePerformanceFeeRate" | "factory" | "feeTo" | "getRoleAdmin" | "getRoleMember" | "getRoleMemberCount" | "grantRole" | "hasRole" | "increamentSwapCounter" | "isAllowedToBurn" | "isAllowedToManage" | "isStrategyPrivate" | "isUserWhiteListed" | "lastSwapTimestamp" | "limit" | "managementFeeRate" | "maxAllowedSwap" | "operator" | "pendingOperator" | "performanceFeeRate" | "renounceRole" | "revokeRole" | "strategy" | "swapCounter" | "updateStrategyMode"): FunctionFragment;
    encodeFunctionData(functionFragment: "ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "BURNER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MANAGER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "MIN_DEVIATION", values?: undefined): string;
    encodeFunctionData(functionFragment: "MIN_FEE", values?: undefined): string;
    encodeFunctionData(functionFragment: "USER_WHITELIST_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "acceptOperator", values?: undefined): string;
    encodeFunctionData(functionFragment: "allowedDeviation", values?: undefined): string;
    encodeFunctionData(functionFragment: "allowedSwapDeviation", values?: undefined): string;
    encodeFunctionData(functionFragment: "changeFeeTo", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "changeLimit", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "changeManagementFeeRate", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "changeMaxSwapLimit", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "changeOperator", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "changePerformanceFeeRate", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "factory", values?: undefined): string;
    encodeFunctionData(functionFragment: "feeTo", values?: undefined): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "getRoleMember", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getRoleMemberCount", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "grantRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "increamentSwapCounter", values?: undefined): string;
    encodeFunctionData(functionFragment: "isAllowedToBurn", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "isAllowedToManage", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "isStrategyPrivate", values?: undefined): string;
    encodeFunctionData(functionFragment: "isUserWhiteListed", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "lastSwapTimestamp", values?: undefined): string;
    encodeFunctionData(functionFragment: "limit", values?: undefined): string;
    encodeFunctionData(functionFragment: "managementFeeRate", values?: undefined): string;
    encodeFunctionData(functionFragment: "maxAllowedSwap", values?: undefined): string;
    encodeFunctionData(functionFragment: "operator", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingOperator", values?: undefined): string;
    encodeFunctionData(functionFragment: "performanceFeeRate", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "revokeRole", values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "strategy", values?: undefined): string;
    encodeFunctionData(functionFragment: "swapCounter", values?: undefined): string;
    encodeFunctionData(functionFragment: "updateStrategyMode", values: [PromiseOrValue<boolean>]): string;
    decodeFunctionResult(functionFragment: "ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "BURNER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MANAGER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MIN_DEVIATION", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MIN_FEE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "USER_WHITELIST_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "acceptOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowedDeviation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allowedSwapDeviation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changeFeeTo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changeLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changeManagementFeeRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changeMaxSwapLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changeOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "changePerformanceFeeRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increamentSwapCounter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isAllowedToBurn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isAllowedToManage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isStrategyPrivate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isUserWhiteListed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lastSwapTimestamp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "limit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "managementFeeRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxAllowedSwap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "operator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "performanceFeeRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "strategy", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "swapCounter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateStrategyMode", data: BytesLike): Result;
    events: {
        "ClaimFee(uint256,uint256)": EventFragment;
        "FeeChanged(uint256)": EventFragment;
        "FeeToChanged(address)": EventFragment;
        "LimitChanged(uint256)": EventFragment;
        "MaxSwapLimitChanged(uint256)": EventFragment;
        "OperatorChanged(address)": EventFragment;
        "OperatorProposed(address)": EventFragment;
        "PerformanceFeeChanged(uint256)": EventFragment;
        "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
        "RoleGranted(bytes32,address,address)": EventFragment;
        "RoleRevoked(bytes32,address,address)": EventFragment;
        "StrategyModeUpdated(bool)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "ClaimFee"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "FeeChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "FeeToChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LimitChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MaxSwapLimitChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OperatorChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OperatorProposed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PerformanceFeeChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "StrategyModeUpdated"): EventFragment;
}
export interface ClaimFeeEventObject {
    managerFee: BigNumber;
    protocolFee: BigNumber;
}
export type ClaimFeeEvent = TypedEvent<[
    BigNumber,
    BigNumber
], ClaimFeeEventObject>;
export type ClaimFeeEventFilter = TypedEventFilter<ClaimFeeEvent>;
export interface FeeChangedEventObject {
    tier: BigNumber;
}
export type FeeChangedEvent = TypedEvent<[BigNumber], FeeChangedEventObject>;
export type FeeChangedEventFilter = TypedEventFilter<FeeChangedEvent>;
export interface FeeToChangedEventObject {
    feeTo: string;
}
export type FeeToChangedEvent = TypedEvent<[string], FeeToChangedEventObject>;
export type FeeToChangedEventFilter = TypedEventFilter<FeeToChangedEvent>;
export interface LimitChangedEventObject {
    limit: BigNumber;
}
export type LimitChangedEvent = TypedEvent<[
    BigNumber
], LimitChangedEventObject>;
export type LimitChangedEventFilter = TypedEventFilter<LimitChangedEvent>;
export interface MaxSwapLimitChangedEventObject {
    limit: BigNumber;
}
export type MaxSwapLimitChangedEvent = TypedEvent<[
    BigNumber
], MaxSwapLimitChangedEventObject>;
export type MaxSwapLimitChangedEventFilter = TypedEventFilter<MaxSwapLimitChangedEvent>;
export interface OperatorChangedEventObject {
    operator: string;
}
export type OperatorChangedEvent = TypedEvent<[
    string
], OperatorChangedEventObject>;
export type OperatorChangedEventFilter = TypedEventFilter<OperatorChangedEvent>;
export interface OperatorProposedEventObject {
    operator: string;
}
export type OperatorProposedEvent = TypedEvent<[
    string
], OperatorProposedEventObject>;
export type OperatorProposedEventFilter = TypedEventFilter<OperatorProposedEvent>;
export interface PerformanceFeeChangedEventObject {
    performanceFeeRate: BigNumber;
}
export type PerformanceFeeChangedEvent = TypedEvent<[
    BigNumber
], PerformanceFeeChangedEventObject>;
export type PerformanceFeeChangedEventFilter = TypedEventFilter<PerformanceFeeChangedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export type RoleAdminChangedEvent = TypedEvent<[
    string,
    string,
    string
], RoleAdminChangedEventObject>;
export type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export type RoleGrantedEvent = TypedEvent<[
    string,
    string,
    string
], RoleGrantedEventObject>;
export type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export type RoleRevokedEvent = TypedEvent<[
    string,
    string,
    string
], RoleRevokedEventObject>;
export type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface StrategyModeUpdatedEventObject {
    status: boolean;
}
export type StrategyModeUpdatedEvent = TypedEvent<[
    boolean
], StrategyModeUpdatedEventObject>;
export type StrategyModeUpdatedEventFilter = TypedEventFilter<StrategyModeUpdatedEvent>;
export interface DefiedgeManager extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: DefiedgeManagerInterface;
    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: {
        ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        BURNER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        MANAGER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        MIN_DEVIATION(overrides?: CallOverrides): Promise<[BigNumber]>;
        MIN_FEE(overrides?: CallOverrides): Promise<[BigNumber]>;
        USER_WHITELIST_ROLE(overrides?: CallOverrides): Promise<[string]>;
        acceptOperator(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowedDeviation(overrides?: CallOverrides): Promise<[BigNumber]>;
        allowedSwapDeviation(overrides?: CallOverrides): Promise<[BigNumber]>;
        changeFeeTo(_newFeeTo: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changeLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changeManagementFeeRate(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changeMaxSwapLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changeOperator(_operator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        changePerformanceFeeRate(_performanceFeeRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        factory(overrides?: CallOverrides): Promise<[string]>;
        feeTo(overrides?: CallOverrides): Promise<[string]>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        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]>;
        increamentSwapCounter(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isAllowedToBurn(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isAllowedToManage(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isStrategyPrivate(overrides?: CallOverrides): Promise<[boolean]>;
        isUserWhiteListed(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        lastSwapTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        limit(overrides?: CallOverrides): Promise<[BigNumber]>;
        managementFeeRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        maxAllowedSwap(overrides?: CallOverrides): Promise<[BigNumber]>;
        operator(overrides?: CallOverrides): Promise<[string]>;
        pendingOperator(overrides?: CallOverrides): Promise<[string]>;
        performanceFeeRate(overrides?: CallOverrides): Promise<[BigNumber]>;
        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>;
        strategy(overrides?: CallOverrides): Promise<[string]>;
        swapCounter(overrides?: CallOverrides): Promise<[BigNumber]>;
        updateStrategyMode(_isPrivate: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    BURNER_ROLE(overrides?: CallOverrides): Promise<string>;
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    MANAGER_ROLE(overrides?: CallOverrides): Promise<string>;
    MIN_DEVIATION(overrides?: CallOverrides): Promise<BigNumber>;
    MIN_FEE(overrides?: CallOverrides): Promise<BigNumber>;
    USER_WHITELIST_ROLE(overrides?: CallOverrides): Promise<string>;
    acceptOperator(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowedDeviation(overrides?: CallOverrides): Promise<BigNumber>;
    allowedSwapDeviation(overrides?: CallOverrides): Promise<BigNumber>;
    changeFeeTo(_newFeeTo: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changeLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changeManagementFeeRate(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changeMaxSwapLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changeOperator(_operator: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    changePerformanceFeeRate(_performanceFeeRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    factory(overrides?: CallOverrides): Promise<string>;
    feeTo(overrides?: CallOverrides): Promise<string>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    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>;
    increamentSwapCounter(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isAllowedToBurn(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isAllowedToManage(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isStrategyPrivate(overrides?: CallOverrides): Promise<boolean>;
    isUserWhiteListed(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    lastSwapTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
    limit(overrides?: CallOverrides): Promise<BigNumber>;
    managementFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
    maxAllowedSwap(overrides?: CallOverrides): Promise<BigNumber>;
    operator(overrides?: CallOverrides): Promise<string>;
    pendingOperator(overrides?: CallOverrides): Promise<string>;
    performanceFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
    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>;
    strategy(overrides?: CallOverrides): Promise<string>;
    swapCounter(overrides?: CallOverrides): Promise<BigNumber>;
    updateStrategyMode(_isPrivate: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        BURNER_ROLE(overrides?: CallOverrides): Promise<string>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        MANAGER_ROLE(overrides?: CallOverrides): Promise<string>;
        MIN_DEVIATION(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_FEE(overrides?: CallOverrides): Promise<BigNumber>;
        USER_WHITELIST_ROLE(overrides?: CallOverrides): Promise<string>;
        acceptOperator(overrides?: CallOverrides): Promise<void>;
        allowedDeviation(overrides?: CallOverrides): Promise<BigNumber>;
        allowedSwapDeviation(overrides?: CallOverrides): Promise<BigNumber>;
        changeFeeTo(_newFeeTo: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        changeLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        changeManagementFeeRate(_fee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        changeMaxSwapLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        changeOperator(_operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        changePerformanceFeeRate(_performanceFeeRate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        factory(overrides?: CallOverrides): Promise<string>;
        feeTo(overrides?: CallOverrides): Promise<string>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        increamentSwapCounter(overrides?: CallOverrides): Promise<void>;
        isAllowedToBurn(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isAllowedToManage(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isStrategyPrivate(overrides?: CallOverrides): Promise<boolean>;
        isUserWhiteListed(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        lastSwapTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        limit(overrides?: CallOverrides): Promise<BigNumber>;
        managementFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
        maxAllowedSwap(overrides?: CallOverrides): Promise<BigNumber>;
        operator(overrides?: CallOverrides): Promise<string>;
        pendingOperator(overrides?: CallOverrides): Promise<string>;
        performanceFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        strategy(overrides?: CallOverrides): Promise<string>;
        swapCounter(overrides?: CallOverrides): Promise<BigNumber>;
        updateStrategyMode(_isPrivate: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "ClaimFee(uint256,uint256)"(managerFee?: null, protocolFee?: null): ClaimFeeEventFilter;
        ClaimFee(managerFee?: null, protocolFee?: null): ClaimFeeEventFilter;
        "FeeChanged(uint256)"(tier?: null): FeeChangedEventFilter;
        FeeChanged(tier?: null): FeeChangedEventFilter;
        "FeeToChanged(address)"(feeTo?: null): FeeToChangedEventFilter;
        FeeToChanged(feeTo?: null): FeeToChangedEventFilter;
        "LimitChanged(uint256)"(limit?: null): LimitChangedEventFilter;
        LimitChanged(limit?: null): LimitChangedEventFilter;
        "MaxSwapLimitChanged(uint256)"(limit?: null): MaxSwapLimitChangedEventFilter;
        MaxSwapLimitChanged(limit?: null): MaxSwapLimitChangedEventFilter;
        "OperatorChanged(address)"(operator?: PromiseOrValue<string> | null): OperatorChangedEventFilter;
        OperatorChanged(operator?: PromiseOrValue<string> | null): OperatorChangedEventFilter;
        "OperatorProposed(address)"(operator?: PromiseOrValue<string> | null): OperatorProposedEventFilter;
        OperatorProposed(operator?: PromiseOrValue<string> | null): OperatorProposedEventFilter;
        "PerformanceFeeChanged(uint256)"(performanceFeeRate?: null): PerformanceFeeChangedEventFilter;
        PerformanceFeeChanged(performanceFeeRate?: null): PerformanceFeeChangedEventFilter;
        "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;
        "StrategyModeUpdated(bool)"(status?: null): StrategyModeUpdatedEventFilter;
        StrategyModeUpdated(status?: null): StrategyModeUpdatedEventFilter;
    };
    estimateGas: {
        ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        BURNER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        MANAGER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_DEVIATION(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_FEE(overrides?: CallOverrides): Promise<BigNumber>;
        USER_WHITELIST_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOperator(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowedDeviation(overrides?: CallOverrides): Promise<BigNumber>;
        allowedSwapDeviation(overrides?: CallOverrides): Promise<BigNumber>;
        changeFeeTo(_newFeeTo: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changeLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changeManagementFeeRate(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changeMaxSwapLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changeOperator(_operator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        changePerformanceFeeRate(_performanceFeeRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<BigNumber>;
        feeTo(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMemberCount(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>;
        increamentSwapCounter(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isAllowedToBurn(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isAllowedToManage(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isStrategyPrivate(overrides?: CallOverrides): Promise<BigNumber>;
        isUserWhiteListed(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastSwapTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        limit(overrides?: CallOverrides): Promise<BigNumber>;
        managementFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
        maxAllowedSwap(overrides?: CallOverrides): Promise<BigNumber>;
        operator(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOperator(overrides?: CallOverrides): Promise<BigNumber>;
        performanceFeeRate(overrides?: CallOverrides): 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>;
        strategy(overrides?: CallOverrides): Promise<BigNumber>;
        swapCounter(overrides?: CallOverrides): Promise<BigNumber>;
        updateStrategyMode(_isPrivate: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        BURNER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MANAGER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MIN_DEVIATION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MIN_FEE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        USER_WHITELIST_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOperator(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowedDeviation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowedSwapDeviation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        changeFeeTo(_newFeeTo: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changeLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changeManagementFeeRate(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changeMaxSwapLimit(_limit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changeOperator(_operator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        changePerformanceFeeRate(_performanceFeeRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        factory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feeTo(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMemberCount(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>;
        increamentSwapCounter(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isAllowedToBurn(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isAllowedToManage(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isStrategyPrivate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isUserWhiteListed(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastSwapTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        limit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        managementFeeRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxAllowedSwap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        operator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOperator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        performanceFeeRate(overrides?: CallOverrides): 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>;
        strategy(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        swapCounter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateStrategyMode(_isPrivate: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
