import { JSONObject } from '../../../types'; import { BaseStore } from '../../base_store'; import { StakeSharingCoefficient } from '../types'; export interface ValidatorAccount { name: string; totalStake: bigint; selfStake: bigint; lastGeneratedHeight: number; isBanned: boolean; reportMisbehaviorHeights: number[]; consecutiveMissedBlocks: number; commission: number; lastCommissionIncreaseHeight: number; sharingCoefficients: StakeSharingCoefficient[]; } export type ValidatorAccountJSON = JSONObject; export type punishmentPeriod = { start: number; end: number; }; export type ValidatorAccountEndpoint = JSONObject & { address: string; } & { punishmentPeriods: punishmentPeriod[]; }; export declare const validatorStoreSchema: { $id: string; type: string; required: string[]; properties: { name: { dataType: string; fieldNumber: number; }; totalStake: { dataType: string; fieldNumber: number; }; selfStake: { dataType: string; fieldNumber: number; }; lastGeneratedHeight: { dataType: string; fieldNumber: number; }; isBanned: { dataType: string; fieldNumber: number; }; reportMisbehaviorHeights: { type: string; fieldNumber: number; items: { dataType: string; }; }; consecutiveMissedBlocks: { dataType: string; fieldNumber: number; }; commission: { dataType: string; fieldNumber: number; }; lastCommissionIncreaseHeight: { dataType: string; fieldNumber: number; }; sharingCoefficients: { type: string; fieldNumber: number; items: { type: string; required: string[]; properties: { tokenID: { dataType: string; fieldNumber: number; minLength: number; maxLength: number; }; coefficient: { dataType: string; fieldNumber: number; maxLength: number; }; }; }; }; }; }; export declare class ValidatorStore extends BaseStore { schema: { $id: string; type: string; required: string[]; properties: { name: { dataType: string; fieldNumber: number; }; totalStake: { dataType: string; fieldNumber: number; }; selfStake: { dataType: string; fieldNumber: number; }; lastGeneratedHeight: { dataType: string; fieldNumber: number; }; isBanned: { dataType: string; fieldNumber: number; }; reportMisbehaviorHeights: { type: string; fieldNumber: number; items: { dataType: string; }; }; consecutiveMissedBlocks: { dataType: string; fieldNumber: number; }; commission: { dataType: string; fieldNumber: number; }; lastCommissionIncreaseHeight: { dataType: string; fieldNumber: number; }; sharingCoefficients: { type: string; fieldNumber: number; items: { type: string; required: string[]; properties: { tokenID: { dataType: string; fieldNumber: number; minLength: number; maxLength: number; }; coefficient: { dataType: string; fieldNumber: number; maxLength: number; }; }; }; }; }; }; }