import type { PipelineType } from "./pipelines";
import type { WidgetExample } from "./widget-example";
import type { TokenizerConfig } from "./tokenizer-data";
/**
 * Public interface for model metadata
 */
export interface ModelData {
    /**
     * id of model (e.g. 'user/repo_name')
     */
    id: string;
    /**
     * Whether or not to enable inference widget for this model
     * TODO(type it)
     */
    inference: string;
    /**
     * is this model private?
     */
    private?: boolean;
    /**
     * this dictionary has useful information about the model configuration
     */
    config?: {
        architectures?: string[];
        /**
         * Dict of AutoModel or Auto… class name to local import path in the repo
         */
        auto_map?: {
            /**
             * String Property
             */
            [x: string]: string;
        };
        model_type?: string;
        quantization_config?: {
            bits?: number;
            load_in_4bit?: boolean;
            load_in_8bit?: boolean;
            /**
             * awq, gptq, aqlm, marlin, … Used by vLLM
             */
            quant_method?: string;
        };
        tokenizer_config?: TokenizerConfig;
        adapter_transformers?: {
            model_name?: string;
            model_class?: string;
        };
        diffusers?: {
            _class_name?: string;
        };
        sklearn?: {
            model?: {
                file?: string;
            };
            model_format?: string;
        };
        speechbrain?: {
            speechbrain_interface?: string;
            vocoder_interface?: string;
            vocoder_model_id?: string;
        };
        peft?: {
            base_model_name_or_path?: string;
            task_type?: string;
        };
    };
    /**
     * all the model tags
     */
    tags: string[];
    /**
     * transformers-specific info to display in the code sample.
     */
    transformersInfo?: TransformersInfo;
    /**
     * Pipeline type
     */
    pipeline_tag?: PipelineType | undefined;
    /**
     * for relevant models, get mask token
     */
    mask_token?: string | undefined;
    /**
     * Example data that will be fed into the widget.
     *
     * can be set in the model card metadata (under `widget`),
     * or by default in `DefaultWidget.ts`
     */
    widgetData?: WidgetExample[] | undefined;
    /**
     * Parameters that will be used by the widget when calling Inference API (serverless)
     * https://huggingface.co/docs/api-inference/detailed_parameters
     *
     * can be set in the model card metadata (under `inference/parameters`)
     * Example:
     * inference:
     *     parameters:
     *         key: val
     */
    cardData?: {
        inference?: boolean | {
            parameters?: Record<string, unknown>;
        };
        base_model?: string | string[];
        instance_prompt?: string | null;
    };
    /**
     * Library name
     * Example: transformers, SpeechBrain, Stanza, etc.
     */
    library_name?: string;
    safetensors?: {
        parameters: Record<string, number>;
        total: number;
        sharded: boolean;
    };
    gguf?: {
        total: number;
        architecture?: string;
        context_length?: number;
    };
}
/**
 * transformers-specific info to display in the code sample.
 */
export interface TransformersInfo {
    /**
     * e.g. AutoModelForSequenceClassification
     */
    auto_model: string;
    /**
     * if set in config.json's auto_map
     */
    custom_class?: string;
    /**
     * e.g. text-classification
     */
    pipeline_tag?: PipelineType;
    /**
     * e.g. "AutoTokenizer" | "AutoFeatureExtractor" | "AutoProcessor"
     */
    processor?: string;
}
//# sourceMappingURL=model-data.d.ts.map