/// <reference types="node" />
import { BlockHeader, StateStore } from '@liskhq/lisk-chain';
import { BFTParameters } from './schemas';
import { BFTHeights } from './types';
import { Validator } from '../../abi';
export interface BlockHeaderAsset {
    maxHeightPrevoted: number;
    maxHeightPreviouslyForged: number;
}
export declare class BFTMethod {
    private _batchSize;
    private _blockTime;
    blockTime(): number;
    init(batchSize: number, blockTime: number): void;
    areHeadersContradicting(bftHeader1: BlockHeader, bftHeader2: BlockHeader): boolean;
    isHeaderContradictingChain(stateStore: StateStore, header: BlockHeader): Promise<boolean>;
    existBFTParameters(stateStore: StateStore, height: number): Promise<boolean>;
    getBFTParameters(stateStore: StateStore, height: number): Promise<BFTParameters>;
    getBFTParametersActiveValidators(stateStore: StateStore, height: number): Promise<BFTParameters>;
    getBFTHeights(stateStore: StateStore): Promise<BFTHeights>;
    impliesMaximalPrevotes(stateStore: StateStore, header: {
        height: number;
        generatorAddress: Buffer;
        maxHeightGenerated: number;
    }): Promise<boolean>;
    getNextHeightBFTParameters(stateStore: StateStore, height: number): Promise<number>;
    setBFTParameters(stateStore: StateStore, precommitThreshold: bigint, certificateThreshold: bigint, validators: Validator[]): Promise<void>;
    getGeneratorAtTimestamp(stateStore: StateStore, height: number, timestamp: number): Promise<Validator>;
    getSlotNumber(timestamp: number): number;
    getSlotTime(slot: number): number;
    isWithinTimeslot(slot: number, timestamp: number): boolean;
}
