import { Listener } from 'jsignal'; import { PostCubeVersion } from '../../constants/bluetooth'; import { PostCube, ScanOptions, ScanResult, Unwatch } from '../postcube'; import { PostCubeMockCharacteristic } from './characteristic'; export interface MockDeviceConfig { deviceId: string; name: string; batteryLevel?: number; connectDelayMs?: number; failOnConnect?: boolean; controlPacketDelayMs?: number; resultPacketDelayMs?: number; timeSyncResult?: number; timeSyncDelayMs?: number; unlockResult?: number; unlockDelayMs?: number; setKeyResult?: number; setKeyDelayMs?: number; factoryResetResult?: number; factoryResetDelayMs?: number; } export interface PostCubeMockConfig { availableDevices: MockDeviceConfig[]; } export declare const postCubeMockConfig: PostCubeMockConfig; export declare const getServiceUUID: () => string; export declare const isEnabled: () => Promise; export declare const requestPostCube: (namePrefix: string, services?: string[], config?: PostCubeMockConfig) => Promise; export declare const scanForPostCubes: (options?: ScanOptions, services?: string[], config?: PostCubeMockConfig) => Promise; export declare class PostCubeMock extends PostCube { static PlatformName: string; config: PostCubeMockConfig; deviceConfig: MockDeviceConfig; characteristics: { [service_characteristic: string]: PostCubeMockCharacteristic; }; get deviceId(): string; private _version; get version(): PostCubeVersion; private _isConnected; get isConnected(): boolean; set isConnected(isConnected: boolean); constructor(config: PostCubeMockConfig, deviceConfig: MockDeviceConfig); protected tmpl(string: string): string; getCharacteristic(serviceUUID: string, characteristicUUID: string): Promise; connect(timeoutMs?: number): Promise; disconnect(timeoutMs?: number): Promise; read(serviceUUID: string, characteristicUUID: string, timeoutMs?: number): Promise; write(serviceUUID: string, characteristicUUID: string, value: DataView, timeoutMs?: number): Promise; startNotifications(serviceUUID: string, characteristicUUID: string, timeoutMs?: number): Promise; watchNotifications(serviceUUID: string, characteristicUUID: string, listener: Listener, timeoutMs?: number): Promise; }