import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Duration, Message, proto3, Timestamp } from "@bufbuild/protobuf"; /** * PacketDirection defines whether the transfer packet is being sent from * this chain or is being received on this chain * * @generated from enum ibc.applications.rate_limiting.v1.PacketDirection */ export declare enum PacketDirection { /** * @generated from enum value: PACKET_SEND = 0; */ PACKET_SEND = 0, /** * @generated from enum value: PACKET_RECV = 1; */ PACKET_RECV = 1 } /** * Path holds the denom and channelID that define the rate limited route * * @generated from message ibc.applications.rate_limiting.v1.Path */ export declare class Path extends Message { /** * @generated from field: string denom = 1; */ denom: string; /** * @generated from field: string channel_or_client_id = 2; */ channelOrClientId: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "ibc.applications.rate_limiting.v1.Path"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Path; static fromJson(jsonValue: JsonValue, options?: Partial): Path; static fromJsonString(jsonString: string, options?: Partial): Path; static equals(a: Path | PlainMessage | undefined, b: Path | PlainMessage | undefined): boolean; } /** * Quota defines the rate limit thresholds for transfer packets * * @generated from message ibc.applications.rate_limiting.v1.Quota */ export declare class Quota extends Message { /** * MaxPercentSend defines the threshold for outflows * The threshold is defined as a percentage (e.g. 10 indicates 10%) * * @generated from field: string max_percent_send = 1; */ maxPercentSend: string; /** * MaxPercentSend defines the threshold for inflows * The threshold is defined as a percentage (e.g. 10 indicates 10%) * * @generated from field: string max_percent_recv = 2; */ maxPercentRecv: string; /** * DurationHours specifies the number of hours before the rate limit * is reset (e.g. 24 indicates that the rate limit is reset each day) * * @generated from field: uint64 duration_hours = 3; */ durationHours: bigint; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "ibc.applications.rate_limiting.v1.Quota"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Quota; static fromJson(jsonValue: JsonValue, options?: Partial): Quota; static fromJsonString(jsonString: string, options?: Partial): Quota; static equals(a: Quota | PlainMessage | undefined, b: Quota | PlainMessage | undefined): boolean; } /** * Flow tracks all the inflows and outflows of a channel. * * @generated from message ibc.applications.rate_limiting.v1.Flow */ export declare class Flow extends Message { /** * Inflow defines the total amount of inbound transfers for the given * rate limit in the current window * * @generated from field: string inflow = 1; */ inflow: string; /** * Outflow defines the total amount of outbound transfers for the given * rate limit in the current window * * @generated from field: string outflow = 2; */ outflow: string; /** * ChannelValue stores the total supply of the denom at the start of * the rate limit. This is used as the denominator when checking * the rate limit threshold * The ChannelValue is fixed for the duration of the rate limit window * * @generated from field: string channel_value = 3; */ channelValue: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "ibc.applications.rate_limiting.v1.Flow"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Flow; static fromJson(jsonValue: JsonValue, options?: Partial): Flow; static fromJsonString(jsonString: string, options?: Partial): Flow; static equals(a: Flow | PlainMessage | undefined, b: Flow | PlainMessage | undefined): boolean; } /** * RateLimit stores all the context about a given rate limit, including * the relevant denom and channel, rate limit thresholds, and current * progress towards the limits * * @generated from message ibc.applications.rate_limiting.v1.RateLimit */ export declare class RateLimit extends Message { /** * @generated from field: ibc.applications.rate_limiting.v1.Path path = 1; */ path?: Path; /** * @generated from field: ibc.applications.rate_limiting.v1.Quota quota = 2; */ quota?: Quota; /** * @generated from field: ibc.applications.rate_limiting.v1.Flow flow = 3; */ flow?: Flow; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "ibc.applications.rate_limiting.v1.RateLimit"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): RateLimit; static fromJson(jsonValue: JsonValue, options?: Partial): RateLimit; static fromJsonString(jsonString: string, options?: Partial): RateLimit; static equals(a: RateLimit | PlainMessage | undefined, b: RateLimit | PlainMessage | undefined): boolean; } /** * WhitelistedAddressPair represents a sender-receiver combo that is * not subject to rate limit restrictions * * @generated from message ibc.applications.rate_limiting.v1.WhitelistedAddressPair */ export declare class WhitelistedAddressPair extends Message { /** * @generated from field: string sender = 1; */ sender: string; /** * @generated from field: string receiver = 2; */ receiver: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "ibc.applications.rate_limiting.v1.WhitelistedAddressPair"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): WhitelistedAddressPair; static fromJson(jsonValue: JsonValue, options?: Partial): WhitelistedAddressPair; static fromJsonString(jsonString: string, options?: Partial): WhitelistedAddressPair; static equals(a: WhitelistedAddressPair | PlainMessage | undefined, b: WhitelistedAddressPair | PlainMessage | undefined): boolean; } /** * HourEpoch is the epoch type. * * @generated from message ibc.applications.rate_limiting.v1.HourEpoch */ export declare class HourEpoch extends Message { /** * @generated from field: uint64 epoch_number = 1; */ epochNumber: bigint; /** * @generated from field: google.protobuf.Duration duration = 2; */ duration?: Duration; /** * @generated from field: google.protobuf.Timestamp epoch_start_time = 3; */ epochStartTime?: Timestamp; /** * @generated from field: int64 epoch_start_height = 4; */ epochStartHeight: bigint; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "ibc.applications.rate_limiting.v1.HourEpoch"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): HourEpoch; static fromJson(jsonValue: JsonValue, options?: Partial): HourEpoch; static fromJsonString(jsonString: string, options?: Partial): HourEpoch; static equals(a: HourEpoch | PlainMessage | undefined, b: HourEpoch | PlainMessage | undefined): boolean; } //# sourceMappingURL=rate_limiting_pb.d.ts.map