import { DeviceUuidInputEvent, DeviceUuidResponse, DeviceMetricsInput, DeviceMetricsOutput, DeviceStatus, DeviceSettings } from '../types.d'; import { DeviceType } from './deviceTypes.d'; import { DeviceMetrics } from './deviceMetrics'; import { EnvironmentService } from '../common_services/config'; import { DeviceVerification } from './deviceVerification'; import { DeviceDb } from './deviceDb'; import { DynamodbService, AppSyncClient } from '../common_services'; import { UpdateEventPublisher } from '../common_interfaces'; export declare class DeviceService extends UpdateEventPublisher { private readonly dynamodbService; private readonly envService; private readonly deviceMetrics; private readonly deviceVerify; private readonly appsyncClient; deviceDb: DeviceDb; constructor(dynamodbService: DynamodbService, envService: EnvironmentService, deviceMetrics: DeviceMetrics, deviceVerify: DeviceVerification, appsyncClient: AppSyncClient); getDeviceUuid: (event: DeviceUuidInputEvent) => Promise; getDeviceMetrics: (deviceUuid: string, type: string) => Promise; createDeviceMetrics: (input: DeviceMetricsInput) => Promise; saveDeviceRecord: (deviceUuid: string, type: DeviceType, data: { [key: string]: any; }) => Promise; saveDeviceTokens: (deviceUuid: string, accessToken: string, refreshToken: string, idToken?: string | undefined) => Promise; saveDevicePhone: (deviceUuid: string, phone: string) => Promise; saveDevicePin: (deviceUuid: string, pin: string) => Promise; saveEntity: (deviceUuid: string, entityUuid: string) => Promise; saveSite: (deviceUuid: string, siteUuid: string) => Promise; getEntityUuidByAccessToken: (accessToken: string) => Promise; getRefreshTokenByUuid: (deviceUuid: string) => Promise; deactivateDevice: (deviceUuid: string) => Promise; getDeviceStatus: (deviceUuid: string) => Promise; saveDeviceStatus: (deviceUuid: string, status: DeviceStatus) => Promise; updateDeviceSettings: (deviceSettings: DeviceSettings) => Promise; getDeviceSettings: (deviceUuid: string) => Promise; prepareUpdateEventRequest(item: any, keys: any): { mutation: import("graphql").DocumentNode; variables: { item: any; }; }; onDeviceSettingsStream: (event: any) => Promise; onDeviceSettingsUpdate: (accessToken: string) => Promise; }