import * as tf from '@tensorflow/tfjs';
export type ClassifierModelSpec = {
    embeddingFeatures: number;
    hiddenLayers?: number[];
    classes: number;
    classNames?: string[];
};
export declare function createImageClassifier(spec: ClassifierModelSpec): tf.Sequential & {
    getArtifacts: () => import("./model-artifacts").PatchedModelArtifacts;
    classNames?: string[];
};
export type ClassificationOptions = {
    /** default: true */
    applySoftmax?: boolean;
    /** default: false */
    squeeze?: boolean;
};
export type ClassificationResult = {
    label: string;
    /** @description between 0 to 1 */
    confidence: number;
};
export declare function getClassCount(shape: tf.Shape | tf.Shape[]): number;
export declare function topClassifyResult(items: ClassificationResult[]): ClassificationResult;
/**
 * @description the values is returned as is.
 * It should has be applied softmax already.
 * */
export declare function mapWithClassName(classNames: string[], values: ArrayLike<number>, options?: {
    sort?: boolean;
}): ClassificationResult[];
export declare function calcClassWeight(options: {
    classes: number;
    classCounts: number[];
}): number[];
