import { ConnectionState } from "@iotize/tap/protocol/api";
import { Observable } from "rxjs";
import { CordovaBLEScanResult, RequestDeviceOptions, ServiceList } from "./definitions";
export declare class IoTizeBleCordovaPlugin {
    checkAvailable(): Promise<boolean>;
    requestEnableBle(): Promise<"OK">;
    startScan(requestDeviceOptions: RequestDeviceOptions | undefined): Observable<CordovaBLEScanResult | "Ok">;
    stopScan(): Promise<"OK">;
    connect(deviceId: string, enableBleIfNot?: boolean): Observable<ConnectionState>;
    askBleEnable(askEnable: boolean): Observable<void>;
    requestMTU(deviceId: string, mtu: number): Promise<"OK">;
    connectAndDiscoverTapServices(deviceId: string, enableBleIfNot?: boolean): Observable<ConnectionState>;
    disConnect(deviceId: string): Promise<"OK">;
    close(deviceId: string): Promise<"OK">;
    isConnected(deviceId: string): Promise<boolean>;
    send(deviceId: string, data: Uint8Array): Promise<Uint8Array>;
    getLastError(): Promise<string>;
    characteristicStartNotification(deviceId: string, serviceId: string, characId: string): Promise<"OK">;
    characteristicChanged(deviceId: string, serviceId: string, characId: string): Observable<Uint8Array>;
    characteristicStopNotification(deviceId: string, serviceId: string, characId: string): Promise<"OK">;
    characteristicReadValue(deviceId: string, serviceId: string, characId: string): Promise<Uint8Array>;
    characteristicWrite(deviceId: string, serviceId: string, characId: string, data: Uint8Array): Promise<"OK">;
    characteristicWriteWithoutResponse(deviceId: string, serviceId: string, characId: string, data: Uint8Array): Promise<"OK">;
    discoverServices(deviceId: string): Promise<ServiceList>;
    private execSingleResult;
    private execMultipleResult;
}
