///
import { Crazyflie } from '.';
import { TOC, TOCItem } from './toc';
import { TOCFetcher } from './toc-fetcher';
import { EventEmitter } from 'events';
export declare class Logging extends EventEmitter {
private crazyflie;
tocFetcher: TOCFetcher;
blocks: Block[];
private nextBlockId;
data: EventEmitter;
/**
* Class for dealing with the 'logging' port (telemetry)
* (https://wiki.bitcraze.io/doc:crazyflie:crtp:log)
*/
constructor(crazyflie: Crazyflie);
/**
* Retrieve logging TOC from the Crazyflie.
* Required before getting any logging data!
*/
getTOC(): Promise;
/**
* Start receiving data of TOC items. Creates a block of variables and activates it.
* You can access these variables using various events; check the documentation.
* You can optionally specify the interval in milliseconds for the Crazyflie to ping data back to the computer.
* (Floors to the nearest 10ms interval)
*/
start(variables: TOCItem[], millisecondInterval?: number): Promise;
/**
* Gets a block with a specified id from the `block` array. Not Crazyflie.
*/
getBlock(id: number): Block;
/**
* Create a log block
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
createBlock(block: Block): Promise;
/**
* Appends variables to a block
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
appendToBlock(blockId: number, variables: TOCItem[]): Promise;
/**
* Deletes a block
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
deleteBlock(blockId: number): Promise;
/**
* Activate a block so logging data is sent back to computer at a certain interval.
* Interval is specified in increments of 10ms (1 = 10ms, 2 = 20ms, etc...)
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
startBlock(blockId: number, interval: number): Promise;
/**
* Deactivates a block so no more logging data is sent from that block
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
stopBlock(blockId: number): Promise;
/**
* Stop and delete all blocks
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
reset(): Promise;
/**
* Handle block response
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_settings_access_port_5_channel_1)
*/
private handleBlock(data);
/**
* Handle incoming log data
* (https://wiki.bitcraze.io/projects:crazyflie:firmware:comm_protocol#log_data_access_port_5_channel_2)
*/
private handleLogData(data);
}
export interface Block {
id: number;
variables: TOCItem[];
}