import { Modules, Types } from 'klayr-framework';
import { DelegateVoteParams, DelegatedVoteStoreData, RevokeDelegatedVoteParams, VoteScoreArray } from '../../types';
import { BaseInstance } from './base';
import { GovernanceGovernableConfig } from '../../config';
import { DelegatedVoteStore } from '../delegated_vote';
export declare class DelegatedVote extends BaseInstance<DelegatedVoteStoreData, DelegatedVoteStore> implements DelegatedVoteStoreData {
    constructor(stores: Modules.NamedRegistry, events: Modules.NamedRegistry, config: GovernanceGovernableConfig, genesisConfig: Types.GenesisConfig, moduleName: string, delegatedVote: DelegatedVoteStoreData, address: Buffer);
    toJSON(): Types.JSONObject<DelegatedVoteStoreData>;
    toObject(): DelegatedVoteStoreData;
    verifyDelegateVote(params: DelegateVoteParams): Promise<void>;
    delegateVote(params: DelegateVoteParams, verify?: boolean): Promise<void>;
    verifyRevokeDelegatedVote(_params: RevokeDelegatedVoteParams | undefined): Promise<void>;
    revokeDelegatedVote(_params: RevokeDelegatedVoteParams | undefined, verify?: boolean): Promise<void>;
    getIncomingDelegationVoteScore(): Promise<VoteScoreArray>;
    private _getIncomingDelegationVoteScore;
    private _isCircularDelegation;
    private _checkForCycles;
    private _removeSenderVoteAndDelegatedVoteFromProposal;
    private _addDelegatedSenderVoteToProposal;
    outgoingDelegation: DelegatedVoteStoreData['outgoingDelegation'];
    incomingDelegation: DelegatedVoteStoreData['incomingDelegation'];
    private readonly castedVoteStore;
    private readonly boostedAccountStore;
    private readonly voteScoreStore;
}
