///
///
import { EventEmitter } from "tsee";
import { LinuxImpulseRunner, ModelInformation, RunnerClassifyResponseSuccess, RunnerHelloResponseModelParameters } from "./linux-impulse-runner";
import sharp, { FitEnum } from 'sharp';
import { ICamera } from "../sensors/icamera";
import * as models from "../../sdk/studio/sdk/model/models";
export declare const FitMethodMap: {
[key: string]: keyof FitEnum;
};
export declare const FitMethodStudioMap: Record, models.ImageInputResizeMode>;
export declare class ImageClassifier extends EventEmitter<{
result: (result: RunnerClassifyResponseSuccess, timeMs: number, imgAsJpeg: Buffer) => void;
profileSnapshotHandlerBegin: (filename: string) => void;
profileSnapshotHandlerEnd: (filename: string) => void;
profileFeaturesBegin: (filename: string) => void;
profileFeaturesEnd: (filename: string) => void;
profileClassifyBegin: (filename: string) => void;
profileClassifyEnd: (filename: string, timingCpp: RunnerClassifyResponseSuccess['timing']) => void;
profileEmitResultBegin: (filename: string) => void;
profileEmitResultEnd: (filename: string) => void;
}> {
private _runner;
private _camera;
private _stopped;
private _runningInference;
private _model;
private _verbose;
/**
* Classifies realtime image data from a camera
* @param runner An initialized impulse runner instance
* @param camera An initialized ICamera instance
*/
constructor(runner: LinuxImpulseRunner, camera: ICamera, opts?: {
verbose?: boolean;
});
/**
* Start the image classifier
*/
start(): Promise;
resume(): void;
pause(): void;
/**
* Stop the classifier
*/
stop(): Promise;
setImageParameters(params: {
image_width?: number;
image_height?: number;
image_channels?: number;
}): Promise;
getRunner(): LinuxImpulseRunner;
static resizeImage(model: ModelInformation, data: Buffer, metadata?: sharp.Metadata): Promise<{
img: sharp.Sharp;
features: number[];
originalWidth: number;
originalHeight: number;
newWidth: number;
newHeight: number;
}>;
static rgbBufferToFeatures(data: Buffer): number[];
private classify;
}