import events = require('events');
import { Message } from '../models/Message';
import { Status } from '../models/Status';
import { Command } from '../models/Command';
import { ILogging } from './ILogging';
export declare class RinnaiSession extends events.EventEmitter {
    private readonly log;
    private address?;
    private readonly showModuleEvents;
    private readonly showModuleStatus;
    private readonly bootTime?;
    private readonly bootPassword?;
    private tcp;
    private jobPing?;
    private jobBoot?;
    private readonly queue;
    private _message?;
    private _status;
    private connectionError;
    constructor(options?: {
        log?: ILogging;
        address?: string;
        port?: number;
        showModuleEvents?: boolean;
        showModuleStatus?: boolean;
        bootTime?: string;
        bootPassword?: string;
    });
    start(): Promise<void>;
    stop(): void;
    get message(): Message | undefined;
    get status(): Status;
    sendCommand(command: Command): Promise<void>;
    private process;
    private commandSucceeded;
    private receiveMessage;
    private handleConnectionError;
    get hasConnectionError(): boolean;
    private getNextSequence;
    delay(ms: number): Promise<void>;
}
//# sourceMappingURL=RinnaiSession.d.ts.map