import { Device, DeviceManager, DeviceManifest, DeviceState, Logger, ScryptedNativeId, WritableDeviceState } from '@scrypted/types'; import { PluginAPI } from './plugin-api'; import { SystemManagerImpl } from './system'; export declare class DeviceStateProxyHandler implements ProxyHandler { deviceManager: DeviceManagerImpl; id: string; setState: (property: string, value: any) => Promise; constructor(deviceManager: DeviceManagerImpl, id: string, setState: (property: string, value: any) => Promise); get?(target: any, p: PropertyKey, receiver: any): any; set?(target: any, p: PropertyKey, value: any, receiver: any): boolean; } interface DeviceManagerDevice { id: string; storage: { [key: string]: any; }; } export declare class DeviceManagerImpl implements DeviceManager { systemManager: SystemManagerImpl; getDeviceConsole: (nativeId?: ScryptedNativeId) => Console; getMixinConsole: (mixinId: string, nativeId?: ScryptedNativeId) => Console; api: PluginAPI; nativeIds: Map; deviceStorage: Map; mixinStorage: Map>; constructor(systemManager: SystemManagerImpl, getDeviceConsole: (nativeId?: ScryptedNativeId) => Console, getMixinConsole: (mixinId: string, nativeId?: ScryptedNativeId) => Console); requestRestart(): Promise; getDeviceLogger(nativeId?: ScryptedNativeId): Logger; getDeviceState(nativeId?: any): DeviceState; createDeviceState(id: string, setState: (property: string, value: any) => Promise): WritableDeviceState; getDeviceStorage(nativeId?: any): StorageImpl; getMixinStorage(id: string, nativeId?: ScryptedNativeId): StorageImpl; pruneMixinStorage(): void; onMixinEvent(id: string, nativeId: ScryptedNativeId, eventInterface: string, eventData: any): Promise; getNativeIds(): string[]; onDeviceDiscovered(device: Device): Promise; onDeviceRemoved(nativeId: string): Promise; onDeviceEvent(nativeId: any, eventInterface: any, eventData?: any): Promise; onDevicesChanged(devices: DeviceManifest): Promise; } export declare class StorageImpl implements Storage { deviceManager: DeviceManagerImpl; nativeId: ScryptedNativeId; prefix?: string; api: PluginAPI; [name: string]: any; private static allowedMethods; private static indexedHandler; constructor(deviceManager: DeviceManagerImpl, nativeId: ScryptedNativeId, prefix?: string); get storage(): { [key: string]: any; }; get length(): number; clear(): void; getItem(key: string): string; key(index: number): string; removeItem(key: string): void; setItem(key: string, value: string): void; } export {};