import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common";
export interface IDataServicePausableInterface extends Interface {
    getFunction(nameOrSignature: "acceptProvisionPendingParameters" | "collect" | "getDelegationRatio" | "getProvisionTokensRange" | "getThawingPeriodRange" | "getVerifierCutRange" | "pause" | "register" | "slash" | "startService" | "stopService" | "unpause"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "PauseGuardianSet" | "ProvisionPendingParametersAccepted" | "ServicePaymentCollected" | "ServiceProviderRegistered" | "ServiceProviderSlashed" | "ServiceStarted" | "ServiceStopped"): EventFragment;
    encodeFunctionData(functionFragment: "acceptProvisionPendingParameters", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "collect", values: [AddressLike, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "getDelegationRatio", values?: undefined): string;
    encodeFunctionData(functionFragment: "getProvisionTokensRange", values?: undefined): string;
    encodeFunctionData(functionFragment: "getThawingPeriodRange", values?: undefined): string;
    encodeFunctionData(functionFragment: "getVerifierCutRange", values?: undefined): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "register", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "slash", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "startService", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "stopService", values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
    decodeFunctionResult(functionFragment: "acceptProvisionPendingParameters", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getDelegationRatio", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProvisionTokensRange", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getThawingPeriodRange", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getVerifierCutRange", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "register", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "slash", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "startService", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stopService", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
}
export declare namespace PauseGuardianSetEvent {
    type InputTuple = [account: AddressLike, allowed: boolean];
    type OutputTuple = [account: string, allowed: boolean];
    interface OutputObject {
        account: string;
        allowed: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ProvisionPendingParametersAcceptedEvent {
    type InputTuple = [serviceProvider: AddressLike];
    type OutputTuple = [serviceProvider: string];
    interface OutputObject {
        serviceProvider: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ServicePaymentCollectedEvent {
    type InputTuple = [
        serviceProvider: AddressLike,
        feeType: BigNumberish,
        tokens: BigNumberish
    ];
    type OutputTuple = [
        serviceProvider: string,
        feeType: bigint,
        tokens: bigint
    ];
    interface OutputObject {
        serviceProvider: string;
        feeType: bigint;
        tokens: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ServiceProviderRegisteredEvent {
    type InputTuple = [serviceProvider: AddressLike, data: BytesLike];
    type OutputTuple = [serviceProvider: string, data: string];
    interface OutputObject {
        serviceProvider: string;
        data: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ServiceProviderSlashedEvent {
    type InputTuple = [serviceProvider: AddressLike, tokens: BigNumberish];
    type OutputTuple = [serviceProvider: string, tokens: bigint];
    interface OutputObject {
        serviceProvider: string;
        tokens: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ServiceStartedEvent {
    type InputTuple = [serviceProvider: AddressLike, data: BytesLike];
    type OutputTuple = [serviceProvider: string, data: string];
    interface OutputObject {
        serviceProvider: string;
        data: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ServiceStoppedEvent {
    type InputTuple = [serviceProvider: AddressLike, data: BytesLike];
    type OutputTuple = [serviceProvider: string, data: string];
    interface OutputObject {
        serviceProvider: string;
        data: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface IDataServicePausable extends BaseContract {
    connect(runner?: ContractRunner | null): IDataServicePausable;
    waitForDeployment(): Promise<this>;
    interface: IDataServicePausableInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    acceptProvisionPendingParameters: TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    collect: TypedContractMethod<[
        serviceProvider: AddressLike,
        feeType: BigNumberish,
        data: BytesLike
    ], [
        bigint
    ], "nonpayable">;
    getDelegationRatio: TypedContractMethod<[], [bigint], "view">;
    getProvisionTokensRange: TypedContractMethod<[], [[bigint, bigint]], "view">;
    getThawingPeriodRange: TypedContractMethod<[], [[bigint, bigint]], "view">;
    getVerifierCutRange: TypedContractMethod<[], [[bigint, bigint]], "view">;
    pause: TypedContractMethod<[], [void], "nonpayable">;
    register: TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    slash: TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    startService: TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    stopService: TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    unpause: TypedContractMethod<[], [void], "nonpayable">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "acceptProvisionPendingParameters"): TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "collect"): TypedContractMethod<[
        serviceProvider: AddressLike,
        feeType: BigNumberish,
        data: BytesLike
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "getDelegationRatio"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "getProvisionTokensRange"): TypedContractMethod<[], [[bigint, bigint]], "view">;
    getFunction(nameOrSignature: "getThawingPeriodRange"): TypedContractMethod<[], [[bigint, bigint]], "view">;
    getFunction(nameOrSignature: "getVerifierCutRange"): TypedContractMethod<[], [[bigint, bigint]], "view">;
    getFunction(nameOrSignature: "pause"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "register"): TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "slash"): TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "startService"): TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "stopService"): TypedContractMethod<[
        serviceProvider: AddressLike,
        data: BytesLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "unpause"): TypedContractMethod<[], [void], "nonpayable">;
    getEvent(key: "PauseGuardianSet"): TypedContractEvent<PauseGuardianSetEvent.InputTuple, PauseGuardianSetEvent.OutputTuple, PauseGuardianSetEvent.OutputObject>;
    getEvent(key: "ProvisionPendingParametersAccepted"): TypedContractEvent<ProvisionPendingParametersAcceptedEvent.InputTuple, ProvisionPendingParametersAcceptedEvent.OutputTuple, ProvisionPendingParametersAcceptedEvent.OutputObject>;
    getEvent(key: "ServicePaymentCollected"): TypedContractEvent<ServicePaymentCollectedEvent.InputTuple, ServicePaymentCollectedEvent.OutputTuple, ServicePaymentCollectedEvent.OutputObject>;
    getEvent(key: "ServiceProviderRegistered"): TypedContractEvent<ServiceProviderRegisteredEvent.InputTuple, ServiceProviderRegisteredEvent.OutputTuple, ServiceProviderRegisteredEvent.OutputObject>;
    getEvent(key: "ServiceProviderSlashed"): TypedContractEvent<ServiceProviderSlashedEvent.InputTuple, ServiceProviderSlashedEvent.OutputTuple, ServiceProviderSlashedEvent.OutputObject>;
    getEvent(key: "ServiceStarted"): TypedContractEvent<ServiceStartedEvent.InputTuple, ServiceStartedEvent.OutputTuple, ServiceStartedEvent.OutputObject>;
    getEvent(key: "ServiceStopped"): TypedContractEvent<ServiceStoppedEvent.InputTuple, ServiceStoppedEvent.OutputTuple, ServiceStoppedEvent.OutputObject>;
    filters: {
        "PauseGuardianSet(address,bool)": TypedContractEvent<PauseGuardianSetEvent.InputTuple, PauseGuardianSetEvent.OutputTuple, PauseGuardianSetEvent.OutputObject>;
        PauseGuardianSet: TypedContractEvent<PauseGuardianSetEvent.InputTuple, PauseGuardianSetEvent.OutputTuple, PauseGuardianSetEvent.OutputObject>;
        "ProvisionPendingParametersAccepted(address)": TypedContractEvent<ProvisionPendingParametersAcceptedEvent.InputTuple, ProvisionPendingParametersAcceptedEvent.OutputTuple, ProvisionPendingParametersAcceptedEvent.OutputObject>;
        ProvisionPendingParametersAccepted: TypedContractEvent<ProvisionPendingParametersAcceptedEvent.InputTuple, ProvisionPendingParametersAcceptedEvent.OutputTuple, ProvisionPendingParametersAcceptedEvent.OutputObject>;
        "ServicePaymentCollected(address,uint8,uint256)": TypedContractEvent<ServicePaymentCollectedEvent.InputTuple, ServicePaymentCollectedEvent.OutputTuple, ServicePaymentCollectedEvent.OutputObject>;
        ServicePaymentCollected: TypedContractEvent<ServicePaymentCollectedEvent.InputTuple, ServicePaymentCollectedEvent.OutputTuple, ServicePaymentCollectedEvent.OutputObject>;
        "ServiceProviderRegistered(address,bytes)": TypedContractEvent<ServiceProviderRegisteredEvent.InputTuple, ServiceProviderRegisteredEvent.OutputTuple, ServiceProviderRegisteredEvent.OutputObject>;
        ServiceProviderRegistered: TypedContractEvent<ServiceProviderRegisteredEvent.InputTuple, ServiceProviderRegisteredEvent.OutputTuple, ServiceProviderRegisteredEvent.OutputObject>;
        "ServiceProviderSlashed(address,uint256)": TypedContractEvent<ServiceProviderSlashedEvent.InputTuple, ServiceProviderSlashedEvent.OutputTuple, ServiceProviderSlashedEvent.OutputObject>;
        ServiceProviderSlashed: TypedContractEvent<ServiceProviderSlashedEvent.InputTuple, ServiceProviderSlashedEvent.OutputTuple, ServiceProviderSlashedEvent.OutputObject>;
        "ServiceStarted(address,bytes)": TypedContractEvent<ServiceStartedEvent.InputTuple, ServiceStartedEvent.OutputTuple, ServiceStartedEvent.OutputObject>;
        ServiceStarted: TypedContractEvent<ServiceStartedEvent.InputTuple, ServiceStartedEvent.OutputTuple, ServiceStartedEvent.OutputObject>;
        "ServiceStopped(address,bytes)": TypedContractEvent<ServiceStoppedEvent.InputTuple, ServiceStoppedEvent.OutputTuple, ServiceStoppedEvent.OutputObject>;
        ServiceStopped: TypedContractEvent<ServiceStoppedEvent.InputTuple, ServiceStoppedEvent.OutputTuple, ServiceStoppedEvent.OutputObject>;
    };
}
//# sourceMappingURL=IDataServicePausable.d.ts.map