import { AppInstallResponseMessageType, AppStateControlMessageType, AppStateControlValue, AppVersionControlMessageType, ModelsInstallResponseMessageType, keyMirrors } from './constants'; import { BaseToDeviceAgentMessage } from './common'; export interface AppStateControlPayload { baseCommand: AppStateControlValue; projectId: string; } export interface AppStateControlMessage extends BaseToDeviceAgentMessage { messageType: AppStateControlMessageType; payload: AppStateControlPayload; } export type AppVersionControlInstallPayload = { baseCommand: typeof keyMirrors.appVersionControl.install; projectId: string; appReleaseHash: string; appCfg?: string; envVars?: string; }; export type AppVersionControlUpdateConfigPayload = { baseCommand: typeof keyMirrors.appVersionControl.update_config; projectId: string; appCfg?: string; envVars?: string; }; export type AppVersionControlUninstallPayload = { baseCommand: typeof keyMirrors.appVersionControl.uninstall; projectId: string; }; export interface AppVersionControlMessage extends BaseToDeviceAgentMessage { messageType: AppVersionControlMessageType; payload: | AppVersionControlInstallPayload | AppVersionControlUninstallPayload | AppVersionControlUpdateConfigPayload; } export type ModelInstallPayload = { id: string; version: number; modelSignedUrl: string; }; export type AppInstallPayload = { appSignedUrl: string; }; export interface AppInstallResponsePayload { appInstallResponse: { projectId: string; appReleaseHash: string; appInstallPayload: AppInstallPayload; modelsInstallPayload: ModelInstallPayload[]; }; } export interface AppInstallResponseMessage extends BaseToDeviceAgentMessage { messageType: AppInstallResponseMessageType; payload: AppInstallResponsePayload; } export interface ModelsInstallResponsePayload { modelsInstallResponse: { projectId: string; newModels: ModelInstallPayload[]; }; } export interface ModelsInstallResponseMessage extends BaseToDeviceAgentMessage { messageType: ModelsInstallResponseMessageType; payload: ModelsInstallResponsePayload; }