/// <reference types="node" />
/// <reference types="node" />
import EventEmitter from "events";
export interface IGattCentral {
    startScanning(callback: (peripheral: IGattPeripheral) => void): Promise<void>;
    stopScanning(): Promise<void>;
}
export interface IGattPeripheral {
    readonly address: string;
    readonly state: "error" | "connecting" | "connected" | "disconnecting" | "disconnected";
    connectAsync(): Promise<void>;
    disconnectAsync(): Promise<void>;
    discoverServicesAsync(uuids: Array<string>): Promise<Array<IGattService>>;
}
export interface IGattService {
    discoverCharacteristicsAsync(uuids: Array<string>): Promise<Array<IGattCharacteristic>>;
}
export interface IGattCharacteristic extends EventEmitter {
    writeAsync(value: Buffer, response: boolean): Promise<void>;
    notify(status: boolean): void;
    discoverDescriptorsAsync(): Promise<Array<IGattDescriptor>>;
}
export interface IGattDescriptor {
    writeValueAsync(value: Buffer): Promise<void>;
}
