/** A user_reward_manager farms pool_rewards to receive rewards proportional to their stake in the pool. */ import type { ClientWithCoreApi, SuiClientTypes } from '@mysten/sui/client'; import { Option } from '../../_dependencies/std/option/structs'; import { TypeName } from '../../_dependencies/std/type-name/structs'; import { Bag } from '../../_dependencies/sui/bag/structs'; import { ID, UID } from '../../_dependencies/sui/object/structs'; import { PhantomReified, PhantomToTypeStr, PhantomTypeArgument, Reified, StructClass, ToField, ToJSON, ToPhantomTypeArgument, ToTypeStr } from '../../_framework/reified'; import { FieldsWithTypes } from '../../_framework/util'; import { Vector } from '../../_framework/vector'; import { Decimal } from '../decimal/structs'; export declare function isPoolRewardManager(type: string): boolean; export interface PoolRewardManagerFields { id: ToField; totalShares: ToField<'u64'>; poolRewards: ToField>>; lastUpdateTimeMs: ToField<'u64'>; } export type PoolRewardManagerReified = Reified; export type PoolRewardManagerJSONField = { id: string; totalShares: string; poolRewards: (ToJSON | null)[]; lastUpdateTimeMs: string; }; export type PoolRewardManagerJSON = { $typeName: typeof PoolRewardManager.$typeName; $typeArgs: []; } & PoolRewardManagerJSONField; /** This struct manages all pool_rewards for a given stake pool. */ export declare class PoolRewardManager implements StructClass { __StructClass: true; static get $typeName(): `${string}::liquidity_mining::PoolRewardManager`; static readonly $numTypeParams = 0; static readonly $isPhantom: readonly []; readonly $typeName: typeof PoolRewardManager.$typeName; readonly $fullTypeName: `${string}::liquidity_mining::PoolRewardManager`; readonly $typeArgs: []; readonly $isPhantom: typeof PoolRewardManager.$isPhantom; readonly id: ToField; readonly totalShares: ToField<'u64'>; readonly poolRewards: ToField>>; readonly lastUpdateTimeMs: ToField<'u64'>; private constructor(); static reified(): PoolRewardManagerReified; static get r(): PoolRewardManagerReified; static phantom(): PhantomReified>; static get p(): PhantomReified>; private static instantiateBcs; private static cachedBcs; static get bcs(): ReturnType; static fromFields(fields: Record): PoolRewardManager; static fromFieldsWithTypes(item: FieldsWithTypes): PoolRewardManager; static fromBcs(data: Uint8Array): PoolRewardManager; toJSONField(): PoolRewardManagerJSONField; toJSON(): PoolRewardManagerJSON; static fromJSONField(field: any): PoolRewardManager; static fromJSON(json: Record): PoolRewardManager; static fromCoreObject(obj: SuiClientTypes.Object<{ content: true; }>): PoolRewardManager; static fetch(client: ClientWithCoreApi, id: string): Promise; } export declare function isPoolReward(type: string): boolean; export interface PoolRewardFields { id: ToField; poolRewardManagerId: ToField; coinType: ToField; startTimeMs: ToField<'u64'>; endTimeMs: ToField<'u64'>; totalRewards: ToField<'u64'>; /** amount of rewards that have been earned by users */ allocatedRewards: ToField; cumulativeRewardsPerShare: ToField; numUserRewardManagers: ToField<'u64'>; additionalFields: ToField; } export type PoolRewardReified = Reified; export type PoolRewardJSONField = { id: string; poolRewardManagerId: string; coinType: string; startTimeMs: string; endTimeMs: string; totalRewards: string; allocatedRewards: ToJSON; cumulativeRewardsPerShare: ToJSON; numUserRewardManagers: string; additionalFields: ToJSON; }; export type PoolRewardJSON = { $typeName: typeof PoolReward.$typeName; $typeArgs: []; } & PoolRewardJSONField; export declare class PoolReward implements StructClass { __StructClass: true; static get $typeName(): `${string}::liquidity_mining::PoolReward`; static readonly $numTypeParams = 0; static readonly $isPhantom: readonly []; readonly $typeName: typeof PoolReward.$typeName; readonly $fullTypeName: `${string}::liquidity_mining::PoolReward`; readonly $typeArgs: []; readonly $isPhantom: typeof PoolReward.$isPhantom; readonly id: ToField; readonly poolRewardManagerId: ToField; readonly coinType: ToField; readonly startTimeMs: ToField<'u64'>; readonly endTimeMs: ToField<'u64'>; readonly totalRewards: ToField<'u64'>; /** amount of rewards that have been earned by users */ readonly allocatedRewards: ToField; readonly cumulativeRewardsPerShare: ToField; readonly numUserRewardManagers: ToField<'u64'>; readonly additionalFields: ToField; private constructor(); static reified(): PoolRewardReified; static get r(): PoolRewardReified; static phantom(): PhantomReified>; static get p(): PhantomReified>; private static instantiateBcs; private static cachedBcs; static get bcs(): ReturnType; static fromFields(fields: Record): PoolReward; static fromFieldsWithTypes(item: FieldsWithTypes): PoolReward; static fromBcs(data: Uint8Array): PoolReward; toJSONField(): PoolRewardJSONField; toJSON(): PoolRewardJSON; static fromJSONField(field: any): PoolReward; static fromJSON(json: Record): PoolReward; static fromCoreObject(obj: SuiClientTypes.Object<{ content: true; }>): PoolReward; static fetch(client: ClientWithCoreApi, id: string): Promise; } export declare function isRewardBalance(type: string): boolean; export interface RewardBalanceFields { dummyField: ToField<'bool'>; } export type RewardBalanceReified = Reified, RewardBalanceFields>; export type RewardBalanceJSONField = { dummyField: boolean; }; export type RewardBalanceJSON = { $typeName: typeof RewardBalance.$typeName; $typeArgs: [PhantomToTypeStr]; } & RewardBalanceJSONField; export declare class RewardBalance implements StructClass { __StructClass: true; static get $typeName(): `${string}::liquidity_mining::RewardBalance`; static readonly $numTypeParams = 1; static readonly $isPhantom: readonly [true]; readonly $typeName: typeof RewardBalance.$typeName; readonly $fullTypeName: `${string}::liquidity_mining::RewardBalance<${PhantomToTypeStr}>`; readonly $typeArgs: [PhantomToTypeStr]; readonly $isPhantom: typeof RewardBalance.$isPhantom; readonly dummyField: ToField<'bool'>; private constructor(); static reified>(T: T): RewardBalanceReified>; static get r(): typeof RewardBalance.reified; static phantom>(T: T): PhantomReified>>>; static get p(): typeof RewardBalance.phantom; private static instantiateBcs; private static cachedBcs; static get bcs(): ReturnType; static fromFields>(typeArg: T, fields: Record): RewardBalance>; static fromFieldsWithTypes>(typeArg: T, item: FieldsWithTypes): RewardBalance>; static fromBcs>(typeArg: T, data: Uint8Array): RewardBalance>; toJSONField(): RewardBalanceJSONField; toJSON(): RewardBalanceJSON; static fromJSONField>(typeArg: T, field: any): RewardBalance>; static fromJSON>(typeArg: T, json: Record): RewardBalance>; static fromCoreObject>(typeArg: T, obj: SuiClientTypes.Object<{ content: true; }>): RewardBalance>; static fetch>(client: ClientWithCoreApi, typeArg: T, id: string): Promise>>; } export declare function isUserRewardManager(type: string): boolean; export interface UserRewardManagerFields { poolRewardManagerId: ToField; share: ToField<'u64'>; rewards: ToField>>; lastUpdateTimeMs: ToField<'u64'>; } export type UserRewardManagerReified = Reified; export type UserRewardManagerJSONField = { poolRewardManagerId: string; share: string; rewards: (ToJSON | null)[]; lastUpdateTimeMs: string; }; export type UserRewardManagerJSON = { $typeName: typeof UserRewardManager.$typeName; $typeArgs: []; } & UserRewardManagerJSONField; export declare class UserRewardManager implements StructClass { __StructClass: true; static get $typeName(): `${string}::liquidity_mining::UserRewardManager`; static readonly $numTypeParams = 0; static readonly $isPhantom: readonly []; readonly $typeName: typeof UserRewardManager.$typeName; readonly $fullTypeName: `${string}::liquidity_mining::UserRewardManager`; readonly $typeArgs: []; readonly $isPhantom: typeof UserRewardManager.$isPhantom; readonly poolRewardManagerId: ToField; readonly share: ToField<'u64'>; readonly rewards: ToField>>; readonly lastUpdateTimeMs: ToField<'u64'>; private constructor(); static reified(): UserRewardManagerReified; static get r(): UserRewardManagerReified; static phantom(): PhantomReified>; static get p(): PhantomReified>; private static instantiateBcs; private static cachedBcs; static get bcs(): ReturnType; static fromFields(fields: Record): UserRewardManager; static fromFieldsWithTypes(item: FieldsWithTypes): UserRewardManager; static fromBcs(data: Uint8Array): UserRewardManager; toJSONField(): UserRewardManagerJSONField; toJSON(): UserRewardManagerJSON; static fromJSONField(field: any): UserRewardManager; static fromJSON(json: Record): UserRewardManager; static fromCoreObject(obj: SuiClientTypes.Object<{ content: true; }>): UserRewardManager; static fetch(client: ClientWithCoreApi, id: string): Promise; } export declare function isUserReward(type: string): boolean; export interface UserRewardFields { poolRewardId: ToField; earnedRewards: ToField; cumulativeRewardsPerShare: ToField; } export type UserRewardReified = Reified; export type UserRewardJSONField = { poolRewardId: string; earnedRewards: ToJSON; cumulativeRewardsPerShare: ToJSON; }; export type UserRewardJSON = { $typeName: typeof UserReward.$typeName; $typeArgs: []; } & UserRewardJSONField; export declare class UserReward implements StructClass { __StructClass: true; static get $typeName(): `${string}::liquidity_mining::UserReward`; static readonly $numTypeParams = 0; static readonly $isPhantom: readonly []; readonly $typeName: typeof UserReward.$typeName; readonly $fullTypeName: `${string}::liquidity_mining::UserReward`; readonly $typeArgs: []; readonly $isPhantom: typeof UserReward.$isPhantom; readonly poolRewardId: ToField; readonly earnedRewards: ToField; readonly cumulativeRewardsPerShare: ToField; private constructor(); static reified(): UserRewardReified; static get r(): UserRewardReified; static phantom(): PhantomReified>; static get p(): PhantomReified>; private static instantiateBcs; private static cachedBcs; static get bcs(): ReturnType; static fromFields(fields: Record): UserReward; static fromFieldsWithTypes(item: FieldsWithTypes): UserReward; static fromBcs(data: Uint8Array): UserReward; toJSONField(): UserRewardJSONField; toJSON(): UserRewardJSON; static fromJSONField(field: any): UserReward; static fromJSON(json: Record): UserReward; static fromCoreObject(obj: SuiClientTypes.Object<{ content: true; }>): UserReward; static fetch(client: ClientWithCoreApi, id: string): Promise; }