/// <reference types="node" />
import { MessageApi } from './api/MessageApi';
import { NodeApi } from './api/NodeApi';
import { HeartbeatController } from './controllers/HeartbeatController';
import { ILoggerInterface } from './interfaces/ILoggerInterface';
import { ISettingsInterface } from './interfaces/ISettingsInterface';
import { NodeModel } from './models/NodeModel';
import { PacketModel } from './models/PacketModel';
import { VoteModel } from './models/VoteModel';
declare class Mokka extends NodeModel {
    readonly nodeApi: NodeApi;
    readonly messageApi: MessageApi;
    readonly heartbeatCtrl: HeartbeatController;
    readonly reqMiddleware: (packet: PacketModel) => Promise<PacketModel>;
    readonly resMiddleware: (packet: PacketModel, peerPublicKey: string) => Promise<PacketModel>;
    readonly customVoteRule: (packet: PacketModel) => Promise<boolean>;
    vote: VoteModel;
    readonly logger: ILoggerInterface;
    private readonly requestProcessorService;
    constructor(options: ISettingsInterface);
    quorum(responses: number): boolean;
    setVote(vote: VoteModel): void;
    connect(): void;
    disconnect(): Promise<void>;
    emitPacket(packet: Buffer): Promise<void>;
}
export { Mokka };
