import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common"; export interface UsageRecorderInterface extends Interface { getFunction(nameOrSignature: "adjustMeter" | "createMeter" | "getOrganizationMeters" | "increaseMeter" | "increaseMeterBatch" | "incrementMeter" | "incrementMeterBatch" | "isActiveOrgMeter" | "passUsages" | "processMeterPayment" | "registry" | "setMeterActive" | "supportsInterface" | "totalMeterCount" | "usageMeters"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "MeterActiveSet" | "MeterCreated" | "MeterPaymentProcessed" | "MeterUsageSet"): EventFragment; encodeFunctionData(functionFragment: "adjustMeter", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "createMeter", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getOrganizationMeters", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "increaseMeter", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "increaseMeterBatch", values: [BigNumberish, BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "incrementMeter", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "incrementMeterBatch", values: [BigNumberish, BigNumberish[]]): string; encodeFunctionData(functionFragment: "isActiveOrgMeter", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "passUsages", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "processMeterPayment", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "registry", values?: undefined): string; encodeFunctionData(functionFragment: "setMeterActive", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "totalMeterCount", values?: undefined): string; encodeFunctionData(functionFragment: "usageMeters", values: [BigNumberish]): string; decodeFunctionResult(functionFragment: "adjustMeter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createMeter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrganizationMeters", data: BytesLike): Result; decodeFunctionResult(functionFragment: "increaseMeter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "increaseMeterBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "incrementMeter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "incrementMeterBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isActiveOrgMeter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "passUsages", data: BytesLike): Result; decodeFunctionResult(functionFragment: "processMeterPayment", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setMeterActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalMeterCount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "usageMeters", data: BytesLike): Result; } export declare namespace MeterActiveSetEvent { type InputTuple = [ organizationId: BigNumberish, meterId: BigNumberish, isActive: boolean ]; type OutputTuple = [ organizationId: bigint, meterId: bigint, isActive: boolean ]; interface OutputObject { organizationId: bigint; meterId: bigint; isActive: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MeterCreatedEvent { type InputTuple = [ organizationId: BigNumberish, meterId: BigNumberish ]; type OutputTuple = [organizationId: bigint, meterId: bigint]; interface OutputObject { organizationId: bigint; meterId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MeterPaymentProcessedEvent { type InputTuple = [ organizationId: BigNumberish, meterId: BigNumberish, tokenId: BigNumberish, usage: BigNumberish ]; type OutputTuple = [ organizationId: bigint, meterId: bigint, tokenId: bigint, usage: bigint ]; interface OutputObject { organizationId: bigint; meterId: bigint; tokenId: bigint; usage: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MeterUsageSetEvent { type InputTuple = [ organizationId: BigNumberish, meterId: BigNumberish, tokenId: BigNumberish, usage: BigNumberish ]; type OutputTuple = [ organizationId: bigint, meterId: bigint, tokenId: bigint, usage: bigint ]; interface OutputObject { organizationId: bigint; meterId: bigint; tokenId: bigint; usage: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface UsageRecorder extends BaseContract { connect(runner?: ContractRunner | null): UsageRecorder; waitForDeployment(): Promise; interface: UsageRecorderInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; adjustMeter: TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish, value: BigNumberish ], [ void ], "nonpayable">; createMeter: TypedContractMethod<[ organizationId: BigNumberish, aggregationMethod: BigNumberish ], [ void ], "nonpayable">; getOrganizationMeters: TypedContractMethod<[ organizationId: BigNumberish ], [ bigint[] ], "view">; increaseMeter: TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish, value: BigNumberish ], [ void ], "nonpayable">; increaseMeterBatch: TypedContractMethod<[ meterId: BigNumberish, tokenIds: BigNumberish[], values: BigNumberish[] ], [ void ], "nonpayable">; incrementMeter: TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish ], [ void ], "nonpayable">; incrementMeterBatch: TypedContractMethod<[ meterId: BigNumberish, tokenIds: BigNumberish[] ], [ void ], "nonpayable">; isActiveOrgMeter: TypedContractMethod<[ meterId: BigNumberish ], [ boolean ], "view">; passUsages: TypedContractMethod<[ arg0: BigNumberish, arg1: BigNumberish ], [ bigint ], "view">; processMeterPayment: TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish ], [ bigint ], "nonpayable">; registry: TypedContractMethod<[], [string], "view">; setMeterActive: TypedContractMethod<[ meterId: BigNumberish, isActive: boolean ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; totalMeterCount: TypedContractMethod<[], [bigint], "view">; usageMeters: TypedContractMethod<[ arg0: BigNumberish ], [ [ bigint, bigint, boolean ] & { orgId: bigint; aggregationMethod: bigint; isActive: boolean; } ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "adjustMeter"): TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish, value: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "createMeter"): TypedContractMethod<[ organizationId: BigNumberish, aggregationMethod: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getOrganizationMeters"): TypedContractMethod<[organizationId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "increaseMeter"): TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish, value: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "increaseMeterBatch"): TypedContractMethod<[ meterId: BigNumberish, tokenIds: BigNumberish[], values: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "incrementMeter"): TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "incrementMeterBatch"): TypedContractMethod<[ meterId: BigNumberish, tokenIds: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "isActiveOrgMeter"): TypedContractMethod<[meterId: BigNumberish], [boolean], "view">; getFunction(nameOrSignature: "passUsages"): TypedContractMethod<[ arg0: BigNumberish, arg1: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "processMeterPayment"): TypedContractMethod<[ meterId: BigNumberish, tokenId: BigNumberish ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "registry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "setMeterActive"): TypedContractMethod<[ meterId: BigNumberish, isActive: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "totalMeterCount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "usageMeters"): TypedContractMethod<[ arg0: BigNumberish ], [ [ bigint, bigint, boolean ] & { orgId: bigint; aggregationMethod: bigint; isActive: boolean; } ], "view">; getEvent(key: "MeterActiveSet"): TypedContractEvent; getEvent(key: "MeterCreated"): TypedContractEvent; getEvent(key: "MeterPaymentProcessed"): TypedContractEvent; getEvent(key: "MeterUsageSet"): TypedContractEvent; filters: { "MeterActiveSet(uint256,uint256,bool)": TypedContractEvent; MeterActiveSet: TypedContractEvent; "MeterCreated(uint256,uint256)": TypedContractEvent; MeterCreated: TypedContractEvent; "MeterPaymentProcessed(uint256,uint256,uint256,uint256)": TypedContractEvent; MeterPaymentProcessed: TypedContractEvent; "MeterUsageSet(uint256,uint256,uint256,uint256)": TypedContractEvent; MeterUsageSet: TypedContractEvent; }; }