import { BlockAssetJSON, BlockJSON, Chain, EventAttr, TransactionJSON } from '@liskhq/lisk-chain';
import { Database, Proof } from '@liskhq/lisk-db';
import { JSONObject } from '../../types';
import { RequestContext } from '../rpc/rpc_server';
import { BFTMethod } from '../bft';
interface EndpointArgs {
    chain: Chain;
    bftMethod: BFTMethod;
}
interface GeneratorInfo {
    address: string;
    nextAllocatedTime: number;
}
export declare class ChainEndpoint {
    [key: string]: unknown;
    private readonly _chain;
    private readonly _bftMethod;
    private _db;
    constructor(args: EndpointArgs);
    init(db: Database): void;
    getBlockByID(context: RequestContext): Promise<BlockJSON>;
    getBlocksByIDs(context: RequestContext): Promise<BlockJSON[]>;
    getBlockByHeight(context: RequestContext): Promise<BlockJSON>;
    getBlocksByHeightBetween(context: RequestContext): Promise<BlockJSON[]>;
    getTransactionByID(context: RequestContext): Promise<TransactionJSON>;
    getTransactionsByIDs(context: RequestContext): Promise<TransactionJSON[]>;
    getTransactionsByHeight(context: RequestContext): Promise<TransactionJSON[]>;
    getAssetsByHeight(context: RequestContext): Promise<BlockAssetJSON[]>;
    getLastBlock(): BlockJSON;
    getEvents(context: RequestContext): Promise<JSONObject<EventAttr[]>>;
    getInclusionProofsAtHeight(context: RequestContext): Promise<{
        proof: JSONObject<Proof>;
    }>;
    proveEvents(context: RequestContext): Promise<JSONObject<Proof>>;
    getGeneratorList(_: RequestContext): Promise<{
        list: GeneratorInfo[];
    }>;
    areHeadersContradicting(context: RequestContext): Promise<{
        valid: boolean;
    }>;
}
export {};
