///
///
import { EdgeImpulseApi } from '../sdk/studio/api';
import * as models from '../sdk/studio/sdk/model/models';
export interface RunnerConfig {
projectId: number | undefined;
blockId: number | undefined;
storageIndex: number | undefined;
storagePath: string;
storageMaxSizeMb: number | undefined;
deploymentVersion: number | undefined;
monitorSummaryIntervalMs: number | undefined;
impulseIdsForProjectId: {
[k: string]: {
impulseId: number;
};
} | undefined;
modelVariantsForProjectId: {
[k: string]: {
variant: models.KerasModelVariantEnum;
};
} | undefined;
}
export interface SerialConfig {
host: string;
jwtToken: string;
uploaderProjectId: number | undefined;
lastVersionCheck: number;
apiKey: string | undefined;
dataForwarderDevices: {
[deviceId: string]: {
apiKey: string;
hmacKey: string;
projectId: number;
samplingFreq: number;
sensors: string[];
};
};
daemonDevices: {
[deviceId: string]: {
projectId: number;
};
};
linuxProjectId: number | undefined;
camera: string | undefined;
audio: string | undefined;
runner: RunnerConfig;
apiKeysForProject: {
[projectId: string]: string;
} | undefined;
}
export interface EdgeImpulseEndpoints {
internal: {
ws: string;
api: string;
apiWs: string;
ingestion: string;
};
device: {
ws: string;
api: string;
ingestion: string;
};
}
export interface EdgeImpulseConfig {
api: EdgeImpulseApi;
endpoints: EdgeImpulseEndpoints;
setDeviceUpload: boolean;
host: string;
}
export declare class Config {
/**
* Whether a file exists (Node.js API cannot be converted using promisify)
* @param path
*/
static exists(path: string): Promise;
/**
* Unlinks a file, but does not throw if unlinking fails.
*/
static safeUnlinkFile(path: string): Promise;
/**
* Atomic write (first write to temp file, then rename)
*/
static writeFileAtomic(path: string, content: string | Buffer): Promise;
private _filename;
private _api;
private _endpoints;
private _configured;
constructor();
/**
* Clean the configuration
*/
clean(): Promise;
removeProjectReferences(): Promise;
getUploaderProjectId(): Promise;
setUploaderProjectId(projectId: number): Promise;
getLinuxProjectId(): Promise;
setLinuxProjectId(projectId: number): Promise;
getApiKeyForProject(projectId: number): Promise;
setApiKeyForProject(projectId: number, apiKey: string): Promise;
getLastVersionCheck(): Promise;
setLastVersionCheck(): Promise;
/**
* Verify that a user has configured the host and was logged in
*/
verifyLogin(devMode: boolean, apiKey?: string, verifyType?: 'org' | 'project'): Promise;
getDataForwarderDevice(deviceId: string): Promise<{
apiKey: string;
hmacKey: string;
projectId: number;
samplingFreq: number;
sensors: string[];
}>;
storeDataForwarderDevice(deviceId: string, data: {
apiKey: string;
hmacKey: string;
projectId: number;
samplingFreq: number;
sensors: string[];
}): Promise;
deleteDataForwarderDevice(deviceId: string): Promise;
getDaemonDevice(deviceId: string): Promise<{
projectId: number;
}>;
storeDaemonDevice(deviceId: string, data: {
projectId: number;
}): Promise;
deleteDaemonDevice(deviceId: string): Promise;
getCamera(): Promise;
storeCamera(camera: string): Promise;
getAudio(): Promise;
storeAudio(audio: string): Promise;
getRunner(): Promise;
storeStoragePath(path: string): Promise;
getStoragePath(): Promise;
getStorageIndex(): Promise;
storeStorageIndex(index: number): Promise;
getStorageMaxSizeMb(): Promise;
setStorageMaxSizeMb(maxSizeMb: number): Promise;
storeProjectId(projectId: number): Promise;
storeBlockId(blockId: number): Promise;
setRunnerImpulseIdForProjectId(projectId: number, impulseId: number): Promise;
getRunnerImpulseIdForProjectId(projectId: number): Promise;
setRunnerModelVariantForProjectId(projectId: number, variant: models.KerasModelVariantEnum): Promise;
getRunnerModelVariantForProjectId(projectId: number): Promise;
getDeploymentVersion(): Promise;
setDeploymentVersion(deploymentVersion: number): Promise;
getStudioUrl(whitelabelId: number | null): Promise;
getDefaultModelsPath(): string;
getDefaultStoragePath(): string;
private getDefaultRunnerPath;
private load;
/**
* This'll throw when access failed
* @param config
* @param verifyType
*/
private verifyAccess;
private getJWTToken;
private store;
getMonitorSummaryIntervalMs(): Promise;
setMonitorSummaryIntervalMs(ms: number): Promise;
}