/// <reference types="node" />
import { BlockHeader, StateStore } from '@liskhq/lisk-chain';
import { AggregateCommit } from '../types';
import { CommitPoolConfig, SingleCommit, ValidatorInfo } from './types';
export declare class CommitPool {
    private readonly _nonGossipedCommits;
    private readonly _nonGossipedCommitsLocal;
    private readonly _gossipedCommits;
    private readonly _blockTime;
    private readonly _bftMethod;
    private readonly _minCertifyHeight;
    private readonly _chain;
    private readonly _network;
    private readonly _db;
    private _jobIntervalID;
    private readonly _metrics;
    constructor(config: CommitPoolConfig);
    start(): void;
    stop(): void;
    addCommit(commit: SingleCommit, local?: boolean): void;
    validateCommit(methodContext: StateStore, commit: SingleCommit): Promise<boolean>;
    getCommitsByHeight(height: number): SingleCommit[];
    createSingleCommit(blockHeader: BlockHeader, validatorInfo: ValidatorInfo, chainID: Buffer): SingleCommit;
    verifyAggregateCommit(stateStore: StateStore, aggregateCommit: AggregateCommit): Promise<boolean>;
    getAggregateCommit(methodContext: StateStore): Promise<AggregateCommit>;
    aggregateSingleCommits(methodContext: StateStore, singleCommits: SingleCommit[]): Promise<AggregateCommit>;
    getMaxRemovalHeight(): Promise<number>;
    private _selectAggregateCommit;
    private _job;
    private _getDeleteHeights;
    private _getAllCommits;
}
