import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3 } from "@bufbuild/protobuf"; import { Gauge } from "./gauge_pb.js"; /** * SplittingPolicy determines the way we want to split incentives in groupGauges * * @generated from enum osmosis.incentives.SplittingPolicy */ export declare enum SplittingPolicy { /** * @generated from enum value: ByVolume = 0; */ ByVolume = 0 } /** * Note that while both InternalGaugeInfo and InternalGaugeRecord could * technically be replaced by DistrInfo and DistrRecord from the pool-incentives * module, we create separate types here to keep our abstractions clean and * readable (pool-incentives distribution abstractions are used in a very * specific way that does not directly relate to gauge logic). This also helps * us sidestep a refactor to avoid an import cycle. * * @generated from message osmosis.incentives.InternalGaugeInfo */ export declare class InternalGaugeInfo extends Message { /** * @generated from field: string total_weight = 1; */ totalWeight: string; /** * @generated from field: repeated osmosis.incentives.InternalGaugeRecord gauge_records = 2; */ gaugeRecords: InternalGaugeRecord[]; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "osmosis.incentives.InternalGaugeInfo"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): InternalGaugeInfo; static fromJson(jsonValue: JsonValue, options?: Partial): InternalGaugeInfo; static fromJsonString(jsonString: string, options?: Partial): InternalGaugeInfo; static equals(a: InternalGaugeInfo | PlainMessage | undefined, b: InternalGaugeInfo | PlainMessage | undefined): boolean; } /** * @generated from message osmosis.incentives.InternalGaugeRecord */ export declare class InternalGaugeRecord extends Message { /** * @generated from field: uint64 gauge_id = 1; */ gaugeId: bigint; /** * CurrentWeight is the current weight of this gauge being distributed to for * this epoch. For instance, for volume splitting policy, this stores the * volume generated in the last epoch of the linked pool. * * @generated from field: string current_weight = 2; */ currentWeight: string; /** * CumulativeWeight serves as a snapshot of the accumulator being tracked * based on splitting policy. For instance, for volume splitting policy, this * stores the cumulative volume for the linked pool at time of last update. * * @generated from field: string cumulative_weight = 3; */ cumulativeWeight: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "osmosis.incentives.InternalGaugeRecord"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): InternalGaugeRecord; static fromJson(jsonValue: JsonValue, options?: Partial): InternalGaugeRecord; static fromJsonString(jsonString: string, options?: Partial): InternalGaugeRecord; static equals(a: InternalGaugeRecord | PlainMessage | undefined, b: InternalGaugeRecord | PlainMessage | undefined): boolean; } /** * Group is an object that stores a 1:1 mapped gauge ID, a list of pool gauge * info, and a splitting policy. These are grouped into a single abstraction to * allow for distribution of group incentives to internal gauges according to * the specified splitting policy. * * @generated from message osmosis.incentives.Group */ export declare class Group extends Message { /** * @generated from field: uint64 group_gauge_id = 1; */ groupGaugeId: bigint; /** * @generated from field: osmosis.incentives.InternalGaugeInfo internal_gauge_info = 2; */ internalGaugeInfo?: InternalGaugeInfo; /** * @generated from field: osmosis.incentives.SplittingPolicy splitting_policy = 3; */ splittingPolicy: SplittingPolicy; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "osmosis.incentives.Group"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Group; static fromJson(jsonValue: JsonValue, options?: Partial): Group; static fromJsonString(jsonString: string, options?: Partial): Group; static equals(a: Group | PlainMessage | undefined, b: Group | PlainMessage | undefined): boolean; } /** * CreateGroup is called via governance to create a new group. * It takes an array of pool IDs to split the incentives across. * * @generated from message osmosis.incentives.CreateGroup */ export declare class CreateGroup extends Message { /** * @generated from field: repeated uint64 pool_ids = 1; */ poolIds: bigint[]; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "osmosis.incentives.CreateGroup"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): CreateGroup; static fromJson(jsonValue: JsonValue, options?: Partial): CreateGroup; static fromJsonString(jsonString: string, options?: Partial): CreateGroup; static equals(a: CreateGroup | PlainMessage | undefined, b: CreateGroup | PlainMessage | undefined): boolean; } /** * GroupsWithGauge is a helper struct that stores a group and its * associated gauge. * * @generated from message osmosis.incentives.GroupsWithGauge */ export declare class GroupsWithGauge extends Message { /** * @generated from field: osmosis.incentives.Group group = 1; */ group?: Group; /** * @generated from field: osmosis.incentives.Gauge gauge = 2; */ gauge?: Gauge; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "osmosis.incentives.GroupsWithGauge"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): GroupsWithGauge; static fromJson(jsonValue: JsonValue, options?: Partial): GroupsWithGauge; static fromJsonString(jsonString: string, options?: Partial): GroupsWithGauge; static equals(a: GroupsWithGauge | PlainMessage | undefined, b: GroupsWithGauge | PlainMessage | undefined): boolean; } //# sourceMappingURL=group_pb.d.ts.map