import BN from 'bn.js'; import { Client } from '../client'; import { Contract } from '../contract'; import { Address } from '../address'; export interface ICandidate { address: Address; pubKey: Uint8Array; } export interface IWitness { pubKey: Uint8Array; voteTotal: BN; powerTotal: BN; } export declare class DPOS extends Contract { static createAsync(client: Client, callerAddr: Address): Promise; constructor(params: { contractAddr: Address; callerAddr: Address; client: Client; }); registerCandidateAsync(pubKey: Uint8Array): Promise; unregisterCandidateAsync(): Promise; voteAsync(candidateAddress: Address, amount: number): Promise; electAsync(): Promise; getCandidatesAsync(): Promise | null>; getWitnessesAsync(): Promise | null>; }