import { Database } from '@liskhq/lisk-db';
import { dataStructures } from '@liskhq/lisk-utils';
import { Chain } from '@liskhq/lisk-chain';
import { EstimateSafeStatusResponse, GetStatusResponse, UpdateStatusResponse } from './schemas';
import { Consensus, GeneratorKeys, Keypair } from './types';
import { RequestContext } from '../rpc/rpc_server';
import { ABI } from '../../abi';
import { JSONObject } from '../../types';
import { SingleCommitHandler } from './single_commit_handler';
interface EndpointArgs {
    keypair: dataStructures.BufferMap<Keypair>;
    consensus: Consensus;
    chain: Chain;
    blockTime: number;
    abi: ABI;
}
interface EndpointInit {
    generatorDB: Database;
    singleCommitHandler: SingleCommitHandler;
    genesisHeight: number;
}
export declare class Endpoint {
    [key: string]: unknown;
    private readonly _keypairs;
    private readonly _consensus;
    private readonly _chain;
    private readonly _blockTime;
    private _generatorDB;
    private _genesisHeight;
    private _singleCommitHandler;
    constructor(args: EndpointArgs);
    init(args: EndpointInit): void;
    getStatus(_ctx: RequestContext): Promise<GetStatusResponse>;
    setStatus(ctx: RequestContext): Promise<void>;
    updateStatus(ctx: RequestContext): Promise<UpdateStatusResponse>;
    estimateSafeStatus(ctx: RequestContext): Promise<EstimateSafeStatusResponse>;
    setKeys(ctx: RequestContext): Promise<void>;
    getAllKeys(_ctx: RequestContext): Promise<{
        keys: JSONObject<GeneratorKeys>[];
    }>;
    hasKeys(ctx: RequestContext): Promise<{
        hasKey: boolean;
    }>;
}
export {};
