import { Modules, Types } from 'klayr-framework';
import { ProposalQueueStoreData } from '../../types';
import { ProposalQueueStore } from '../queue';
import { BaseInstance } from './base';
import { GovernanceGovernableConfig } from '../../config';
import { GovernableConfigRegistry } from '../../registry';
export declare class ProposalQueue extends BaseInstance<ProposalQueueStoreData, ProposalQueueStore> implements ProposalQueueStoreData {
    constructor(stores: Modules.NamedRegistry, events: Modules.NamedRegistry, config: GovernanceGovernableConfig, genesisConfig: Types.GenesisConfig, moduleName: string, governableConfigRegistry: GovernableConfigRegistry, queue: ProposalQueueStoreData, height: number);
    toJSON(): Types.JSONObject<ProposalQueueStoreData>;
    toObject(): ProposalQueueStoreData;
    executeQueue(): Promise<void>;
    private _executeStartedProposal;
    private _executeQuorumCheck;
    private _executeEndedProposal;
    private _executeProposalOutcome;
    private _executeFundingAction;
    private _executeConfigAction;
    private _removeProposalVoterCastedVote;
    private _getStakingTokenId;
    start: ProposalQueueStoreData['start'];
    quorum: ProposalQueueStoreData['quorum'];
    ends: ProposalQueueStoreData['ends'];
    execute: ProposalQueueStoreData['execute'];
    private readonly castedVoteStore;
    private readonly proposalStore;
    private readonly governableConfigRegistry;
    private readonly proposalVoterStore;
}
