/// <reference types="node" />
import { Transform, TransformOptions, TransformCallback, Writable } from 'stream';
import { MavLinkPacket, MavLinkProtocol, minimal } from 'node-mavlink';
/**
 * Heartbeat transformer options specific to the implementation
 */
export interface HeartbeatOptions {
    /** Protocol (MavLinkProtocolV2 by default) */
    protocol?: MavLinkProtocol;
}
export interface HeartbeatData {
    packet: MavLinkPacket;
    heartbeat: minimal.Heartbeat;
}
/**
 * Heartbeat manager for node-mavlink
 */
export declare class Heartbeat extends Transform {
    private readonly port;
    private readonly protocol;
    private timer;
    type: minimal.MavType;
    autopilot: minimal.MavAutopilot;
    baseMode: minimal.MavModeFlag;
    customMode: number;
    systemStatus: minimal.MavState;
    mavlinkVersion: number;
    constructor(port: Writable, options?: TransformOptions & HeartbeatOptions);
    _transform(packet: MavLinkPacket, encoding: string, callback: TransformCallback): void;
    /**
     * Wait for one heartbeat
     */
    waitForOne(timeout?: number): Promise<any>;
    /**
     * Send heartbeat packet to the other side
     */
    send(): Promise<void>;
    /**
     * Start sending heartbeat packets periodically every <code>interval<code> millisecond
     */
    start(interval?: number): void;
    /**
     * Stop sending heartbeat packets periodically
     */
    stop(): void;
}
//# sourceMappingURL=index.d.ts.map