import { NativeTypedEvent } from "./ExtendedWebBluetooth";
export declare class LavvaBluetooth {
    private receiveBuffer;
    private _maxCharacteristicValueLength;
    private serviceUuid;
    private characteristicUuid;
    private receiveSeparator;
    private sendSeparator;
    private selectedDevice;
    private characteristic;
    private gattServer;
    private gattService;
    OnGattServiceDisconnectedEvent: NativeTypedEvent<BluetoothRemoteGATTServer | undefined>;
    OnCharacteristicValueChangedEvent: NativeTypedEvent<string>;
    OnConnectedEvent: NativeTypedEvent<BluetoothDevice>;
    OnDisconnectedEvent: NativeTypedEvent<BluetoothDevice>;
    private filter;
    SetFilter(filters: BluetoothLEScanFilter[]): void;
    GetConnectedDevice(): BluetoothDevice | null;
    RequestDeviceAndConnectAsync(): Promise<BluetoothDevice | DeviceConnectionError>;
    private handleGattServiceDisconnected;
    private handleCharacteristicValueChanged;
    DisconnectDeviceAsync(device: BluetoothDevice): Promise<DeviceDisconnectionStatus>;
    SendDataAsync(data: string): Promise<WriteDataStatus>;
    private WriteValueAsync;
    private SplitByLength;
}
export declare enum DeviceConnectionError {
    NoDeviceHasBeenSelected = 0,
    AnotherDeviceIsAlreadyConnected = 1,
    FailedToConnectToGattServer = 2,
    FailedToGetPrimaryService = 3,
    FailedToDiscoverService = 4,
    FailedToGetCharacteristic = 5,
    FailedToStartNotifications = 6
}
export declare enum DeviceDisconnectionStatus {
    NoDeviceConnected = 0,
    FailedToForgetDevice = 1,
    FailedToDisconnect = 2,
    FailedToStopNotifications = 3,
    DisconnectedSuccesfully = 4
}
export declare enum WriteDataStatus {
    Sucess = 0,
    DataIsEmpty = 1,
    NoDeviceConnected = 2,
    FailedToWriteValue = 3
}
