import { ECPoint, UInt160 } from '@neo-one/client-common-esnext-esm'; import { Account, StateTransaction, Transaction, Validator, ValidatorKey, ValidatorsCount, ValidatorsCountUpdate, ValidatorUpdate } from '@neo-one/node-core-esnext-esm'; import BN from 'bn.js'; import { Blockchain } from './Blockchain'; export interface AccountChanges { [hash: string]: readonly ECPoint[]; } export interface ValidatorVotesChanges { [hash: string]: BN; } export interface ValidatorRegisteredChanges { [hash: string]: boolean; } interface ValidatorChange { readonly registered?: boolean; readonly votes?: BN; } export interface ValidatorChanges { [hash: string]: ValidatorChange; } export declare type ValidatorsCountChanges = BN[]; export declare const getDescriptorChanges: ({ transactions, getAccount, governingTokenHash, }: { readonly transactions: readonly StateTransaction[]; readonly getAccount: (hash: UInt160) => Promise; readonly governingTokenHash: string; }) => Promise<{ readonly accountChanges: AccountChanges; readonly validatorChanges: ValidatorChanges; readonly validatorsCountChanges: BN[]; }>; export declare const processStateTransaction: ({ validatorChanges, validatorsCountChanges, tryGetValidatorsCount, addValidatorsCount, updateValidatorsCount, tryGetValidator, addValidator, deleteValidator, updateValidator, }: { readonly validatorChanges: ValidatorChanges; readonly validatorsCountChanges: BN[]; readonly tryGetValidatorsCount: () => Promise; readonly addValidatorsCount: (validatorsCount: ValidatorsCount) => Promise; readonly updateValidatorsCount: (validatorsCount: ValidatorsCount, update: ValidatorsCountUpdate) => Promise; readonly tryGetValidator: (key: ValidatorKey) => Promise; readonly addValidator: (validator: Validator) => Promise; readonly deleteValidator: (key: ValidatorKey) => Promise; readonly updateValidator: (validator: Validator, update: ValidatorUpdate) => Promise; }) => Promise; export declare const getValidators: (blockchain: Blockchain, transactions: readonly Transaction[]) => Promise; export {};