///
///
import TypedEmitter from 'typed-emitter';
import { MgmtInterfaceSampleRequestSample, ClientConnectionType } from "../../shared/MgmtInterfaceTypes";
import { RemoteMgmtDevice, RemoteMgmtDeviceSampleEmitter } from "../../cli-common/remote-mgmt-service";
import { Config, EdgeImpulseConfig } from "../../cli-common/config";
import { ICamera } from "../../library/sensors/icamera";
declare const LinuxDevice_base: new () => TypedEmitter<{
snapshot: (buffer: Buffer, filename: string) => void;
}>;
export declare class LinuxDevice extends LinuxDevice_base implements RemoteMgmtDevice {
private _camera;
private _config;
private _projectId;
private _devKeys;
private _snapshotStreaming;
private _lastSnapshot;
private _snapshotMutex;
private _snapshotId;
private _snapshotStreamingResolution;
private _microphoneDisabled;
private _enableVideo;
private _sensorVerboseOutput;
private _audioDeviceName;
private _configFactory;
constructor(config: EdgeImpulseConfig, projectId: number, devKeys: {
apiKey: string;
hmacKey: string;
}, noMicrophone: boolean, enableVideo: boolean, sensorVerboseOutput: boolean, configFactory: Config);
registerCameraSnapshotHandler(cameraInstance: ICamera): void;
connected(): boolean;
getDeviceId(): Promise;
getDeviceType(): Promise<"RASPBERRY_PI" | "NVIDIA_JETSON_NANO" | "QUALCOMM_LINUX" | "EDGE_IMPULSE_LINUX">;
getSensors(): any;
getConnectionType(): ClientConnectionType;
supportsSnapshotStreaming(): boolean;
supportsSnapshotStreamingWhileCapturing(): boolean;
beforeConnect(): Promise;
startSnapshotStreaming(resolution: 'high' | 'low'): Promise;
stopSnapshotStreaming(): Promise;
sampleRequest(data: MgmtInterfaceSampleRequestSample, ee: RemoteMgmtDeviceSampleEmitter): Promise;
setAudioDeviceName(deviceName: string): void;
private buildWavFileBuffer;
private checkFileExists;
}
export {};