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.js";
export interface OrocleV1Interface extends Interface {
    getFunction(nameOrSignature: "addOperator" | "fulfill" | "getData" | "getLatestData" | "getLatestRound" | "getMetadata" | "isDeactivated" | "isOperator" | "owner" | "publishData" | "publishPrice" | "removeOperator" | "renounceOwnership" | "request" | "setDeactivatedStatus" | "transferOwnership"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "AddOperator" | "Deactivated" | "FulFill" | "OwnershipTransferred" | "PublishData" | "RemoveOperator" | "Request"): EventFragment;
    encodeFunctionData(functionFragment: "addOperator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "fulfill", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "getData", values: [BigNumberish, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "getLatestData", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "getLatestRound", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "getMetadata", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "isDeactivated", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "isOperator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "publishData", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "publishPrice", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "removeOperator", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "request", values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "setDeactivatedStatus", values: [AddressLike, boolean]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string;
    decodeFunctionResult(functionFragment: "addOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fulfill", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getData", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLatestData", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLatestRound", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMetadata", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isDeactivated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "publishData", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "publishPrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "request", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setDeactivatedStatus", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
}
export declare namespace AddOperatorEvent {
    type InputTuple = [newOperator: AddressLike];
    type OutputTuple = [newOperator: string];
    interface OutputObject {
        newOperator: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DeactivatedEvent {
    type InputTuple = [actor: AddressLike, status: boolean];
    type OutputTuple = [actor: string, status: boolean];
    interface OutputObject {
        actor: string;
        status: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace FulFillEvent {
    type InputTuple = [
        actor: AddressLike,
        identifier: BigNumberish,
        data: BytesLike
    ];
    type OutputTuple = [actor: string, identifier: bigint, data: string];
    interface OutputObject {
        actor: string;
        identifier: bigint;
        data: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PublishDataEvent {
    type InputTuple = [
        application: BigNumberish,
        round: BigNumberish,
        identifier: BytesLike,
        data: BytesLike
    ];
    type OutputTuple = [
        application: bigint,
        round: bigint,
        identifier: string,
        data: string
    ];
    interface OutputObject {
        application: bigint;
        round: bigint;
        identifier: string;
        data: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RemoveOperatorEvent {
    type InputTuple = [OldOperator: AddressLike];
    type OutputTuple = [OldOperator: string];
    interface OutputObject {
        OldOperator: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RequestEvent {
    type InputTuple = [
        actor: AddressLike,
        identifier: BigNumberish,
        data: BytesLike
    ];
    type OutputTuple = [actor: string, identifier: bigint, data: string];
    interface OutputObject {
        actor: string;
        identifier: bigint;
        data: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface OrocleV1 extends BaseContract {
    connect(runner?: ContractRunner | null): OrocleV1;
    waitForDeployment(): Promise<this>;
    interface: OrocleV1Interface;
    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>;
    addOperator: TypedContractMethod<[
        newOperator: AddressLike
    ], [
        boolean
    ], "nonpayable">;
    fulfill: TypedContractMethod<[
        identifier: BigNumberish,
        data: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    getData: TypedContractMethod<[
        appId: BigNumberish,
        round: BigNumberish,
        identifier: BytesLike
    ], [
        string
    ], "view">;
    getLatestData: TypedContractMethod<[
        appId: BigNumberish,
        identifier: BytesLike
    ], [
        string
    ], "view">;
    getLatestRound: TypedContractMethod<[
        appId: BigNumberish,
        identifier: BytesLike
    ], [
        [
            bigint,
            bigint,
            string
        ] & {
            round: bigint;
            lastUpdate: bigint;
            data: string;
        }
    ], "view">;
    getMetadata: TypedContractMethod<[
        appId: BigNumberish,
        identifier: BytesLike
    ], [
        [bigint, bigint] & {
            round: bigint;
            lastUpdate: bigint;
        }
    ], "view">;
    isDeactivated: TypedContractMethod<[user: AddressLike], [boolean], "view">;
    isOperator: TypedContractMethod<[
        checkAddress: AddressLike
    ], [
        boolean
    ], "view">;
    owner: TypedContractMethod<[], [string], "view">;
    publishData: TypedContractMethod<[
        appId: BigNumberish,
        packedData: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    publishPrice: TypedContractMethod<[
        packedData: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    removeOperator: TypedContractMethod<[
        oldOperator: AddressLike
    ], [
        boolean
    ], "nonpayable">;
    renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;
    request: TypedContractMethod<[
        identifier: BigNumberish,
        data: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    setDeactivatedStatus: TypedContractMethod<[
        userAddress: AddressLike,
        status: boolean
    ], [
        boolean
    ], "nonpayable">;
    transferOwnership: TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "addOperator"): TypedContractMethod<[newOperator: AddressLike], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "fulfill"): TypedContractMethod<[
        identifier: BigNumberish,
        data: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "getData"): TypedContractMethod<[
        appId: BigNumberish,
        round: BigNumberish,
        identifier: BytesLike
    ], [
        string
    ], "view">;
    getFunction(nameOrSignature: "getLatestData"): TypedContractMethod<[
        appId: BigNumberish,
        identifier: BytesLike
    ], [
        string
    ], "view">;
    getFunction(nameOrSignature: "getLatestRound"): TypedContractMethod<[
        appId: BigNumberish,
        identifier: BytesLike
    ], [
        [
            bigint,
            bigint,
            string
        ] & {
            round: bigint;
            lastUpdate: bigint;
            data: string;
        }
    ], "view">;
    getFunction(nameOrSignature: "getMetadata"): TypedContractMethod<[
        appId: BigNumberish,
        identifier: BytesLike
    ], [
        [bigint, bigint] & {
            round: bigint;
            lastUpdate: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "isDeactivated"): TypedContractMethod<[user: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "isOperator"): TypedContractMethod<[checkAddress: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "publishData"): TypedContractMethod<[
        appId: BigNumberish,
        packedData: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "publishPrice"): TypedContractMethod<[packedData: BytesLike], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "removeOperator"): TypedContractMethod<[oldOperator: AddressLike], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "request"): TypedContractMethod<[
        identifier: BigNumberish,
        data: BytesLike
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "setDeactivatedStatus"): TypedContractMethod<[
        userAddress: AddressLike,
        status: boolean
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
    getEvent(key: "AddOperator"): TypedContractEvent<AddOperatorEvent.InputTuple, AddOperatorEvent.OutputTuple, AddOperatorEvent.OutputObject>;
    getEvent(key: "Deactivated"): TypedContractEvent<DeactivatedEvent.InputTuple, DeactivatedEvent.OutputTuple, DeactivatedEvent.OutputObject>;
    getEvent(key: "FulFill"): TypedContractEvent<FulFillEvent.InputTuple, FulFillEvent.OutputTuple, FulFillEvent.OutputObject>;
    getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    getEvent(key: "PublishData"): TypedContractEvent<PublishDataEvent.InputTuple, PublishDataEvent.OutputTuple, PublishDataEvent.OutputObject>;
    getEvent(key: "RemoveOperator"): TypedContractEvent<RemoveOperatorEvent.InputTuple, RemoveOperatorEvent.OutputTuple, RemoveOperatorEvent.OutputObject>;
    getEvent(key: "Request"): TypedContractEvent<RequestEvent.InputTuple, RequestEvent.OutputTuple, RequestEvent.OutputObject>;
    filters: {
        "AddOperator(address)": TypedContractEvent<AddOperatorEvent.InputTuple, AddOperatorEvent.OutputTuple, AddOperatorEvent.OutputObject>;
        AddOperator: TypedContractEvent<AddOperatorEvent.InputTuple, AddOperatorEvent.OutputTuple, AddOperatorEvent.OutputObject>;
        "Deactivated(address,bool)": TypedContractEvent<DeactivatedEvent.InputTuple, DeactivatedEvent.OutputTuple, DeactivatedEvent.OutputObject>;
        Deactivated: TypedContractEvent<DeactivatedEvent.InputTuple, DeactivatedEvent.OutputTuple, DeactivatedEvent.OutputObject>;
        "FulFill(address,uint256,bytes)": TypedContractEvent<FulFillEvent.InputTuple, FulFillEvent.OutputTuple, FulFillEvent.OutputObject>;
        FulFill: TypedContractEvent<FulFillEvent.InputTuple, FulFillEvent.OutputTuple, FulFillEvent.OutputObject>;
        "OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        "PublishData(uint32,uint64,bytes20,bytes32)": TypedContractEvent<PublishDataEvent.InputTuple, PublishDataEvent.OutputTuple, PublishDataEvent.OutputObject>;
        PublishData: TypedContractEvent<PublishDataEvent.InputTuple, PublishDataEvent.OutputTuple, PublishDataEvent.OutputObject>;
        "RemoveOperator(address)": TypedContractEvent<RemoveOperatorEvent.InputTuple, RemoveOperatorEvent.OutputTuple, RemoveOperatorEvent.OutputObject>;
        RemoveOperator: TypedContractEvent<RemoveOperatorEvent.InputTuple, RemoveOperatorEvent.OutputTuple, RemoveOperatorEvent.OutputObject>;
        "Request(address,uint256,bytes)": TypedContractEvent<RequestEvent.InputTuple, RequestEvent.OutputTuple, RequestEvent.OutputObject>;
        Request: TypedContractEvent<RequestEvent.InputTuple, RequestEvent.OutputTuple, RequestEvent.OutputObject>;
    };
}
//# sourceMappingURL=OrocleV1.d.ts.map