export declare function getClassNames(options?: {
    fallback?: string[];
}): string[];
export declare function loadModels(): Promise<{
    embeddingCache: {
        keys(): string[];
        has(filename: string): boolean;
        get(filename: string): number[] | null;
        set(filename: string, values: number[]): void;
    };
    baseModel: {
        spec: import("tensorflow-helpers").ImageModelSpec;
        model: import("@tensorflow/tfjs-converter").GraphModel<string | import("@tensorflow/tfjs-core/dist/io/types").IOHandler> & {
            classNames?: string[];
        };
        fileEmbeddingCache: Map<string, import("@tensorflow/tfjs-core").Tensor<import("@tensorflow/tfjs-core").Rank>> | null;
        checkCache: (file_or_filename: string) => import("@tensorflow/tfjs-core").Tensor | void;
        loadImageCropped: (file: string, options?: {
            expandAnimations?: boolean;
        }) => Promise<import("@tensorflow/tfjs-core").Tensor3D | import("@tensorflow/tfjs-core").Tensor4D>;
        imageFileToEmbedding: (file: string, options?: {
            expandAnimations?: boolean;
        }) => Promise<import("@tensorflow/tfjs-core").Tensor>;
        imageTensorToEmbedding: (imageTensor: import("@tensorflow/tfjs-core").Tensor3D | import("@tensorflow/tfjs-core").Tensor4D) => import("@tensorflow/tfjs-core").Tensor;
    };
    classifierModel: {
        baseModel: {
            spec: import("tensorflow-helpers").ImageModelSpec;
            model: import("@tensorflow/tfjs-converter").GraphModel<string | import("@tensorflow/tfjs-core/dist/io/types").IOHandler> & {
                classNames?: string[];
            };
            fileEmbeddingCache: Map<string, import("@tensorflow/tfjs-core").Tensor<import("@tensorflow/tfjs-core").Rank>> | null;
            checkCache: (file_or_filename: string) => import("@tensorflow/tfjs-core").Tensor | void;
            loadImageCropped: (file: string, options?: {
                expandAnimations?: boolean;
            } | undefined) => Promise<import("@tensorflow/tfjs-core").Tensor3D | import("@tensorflow/tfjs-core").Tensor4D>;
            imageFileToEmbedding: (file: string, options?: {
                expandAnimations?: boolean;
            } | undefined) => Promise<import("@tensorflow/tfjs-core").Tensor>;
            imageTensorToEmbedding: (imageTensor: import("@tensorflow/tfjs-core").Tensor3D | import("@tensorflow/tfjs-core").Tensor4D) => import("@tensorflow/tfjs-core").Tensor;
        };
        classifierModel: (import("@tensorflow/tfjs-layers").Sequential & {
            classNames?: string[];
        }) | (import("@tensorflow/tfjs-layers").LayersModel & {
            classNames?: string[];
        });
        classNames: string[];
        classifyImageFile: (file: string) => Promise<import("tensorflow-helpers").ClassificationResult[]>;
        classifyImageTensor: (imageTensor: import("@tensorflow/tfjs-core").Tensor3D | import("@tensorflow/tfjs-core").Tensor4D) => Promise<import("tensorflow-helpers").ClassificationResult[]>;
        classifyImageEmbedding: (embedding: import("@tensorflow/tfjs-core").Tensor) => Promise<import("tensorflow-helpers").ClassificationResult[]>;
        loadDatasetFromDirectory: () => Promise<{
            x: import("@tensorflow/tfjs-core").Tensor<import("@tensorflow/tfjs-core").Rank>;
            y: import("@tensorflow/tfjs-core").Tensor<import("@tensorflow/tfjs-core").Rank>;
            classCounts: number[];
        }>;
        compile: () => void;
        train: (options?: import("@tensorflow/tfjs-layers").ModelFitArgs & ({
            x: import("@tensorflow/tfjs-core").Tensor<import("@tensorflow/tfjs-core").Rank>;
            y: import("@tensorflow/tfjs-core").Tensor<import("@tensorflow/tfjs-core").Rank>;
            classCounts?: number[];
        } | {})) => Promise<import("@tensorflow/tfjs-layers").History>;
        save: (dir?: string) => Promise<import("@tensorflow/tfjs-core/dist/io/types").SaveResult>;
    };
    metadata: {
        epochs: number;
    };
}>;
export declare function saveClassifierModelMetadata(dir: string, metadata: {
    epochs: number;
}): Promise<void>;
export declare function initClassNames(): Promise<void>;
export declare function getClassLabelsInfo(): Promise<{
    classNames: string[];
    complexity: number;
}>;
export declare function updateClassLabels(body: {
    classNames: string[];
}): Promise<void>;
