import { Size } from "aws-cdk-lib";
import { IBucket } from "aws-cdk-lib/aws-s3";
export declare enum DataTypeBits {
    BF16_OR_FP16 = 16,
    FP8_OR_INT8 = 8
}
/**
 * Quant data type.
 */
export declare enum QuantDtype {
    /**
     * int8 weight storage.
     */
    S8 = "s8"
}
/**
 * Optimization level.
 */
export declare enum OptLevel {
    /**
     * enables the core performance optimizations in the compiler, while also minimizing compile time.
     */
    MINIMIZING_COMPILE_TIME = 1,
    /**
     * provides the best balance between model performance and compile time.
     */
    BEST_BALANCE = 2,
    /**
     * may provide additional model execution performance but may incur longer compile times and higher host memory usage during model compilation.
     */
    MODEL_EXECUTION_PERFORMANCE = 3
}
/**
 * Represents the amount of parameters.
 */
export declare class Parameters {
    /**
     * number of paremters.
     */
    private readonly parameters;
    /**
     * Create a Parameters representing an amount million.
     * @param parameters number of parameters millionX
     * @returns parameters
     */
    static million(parameters: number): Parameters;
    /**
     * Create a Parameters representing an amount billion.
     * @param parameters number of parameters billionX
     * @returns parameters
     */
    static billion(parameters: number): Parameters;
    private constructor();
    /**
     * Return this number of parameters as million.
     * @returns This number of parameters as million.
     */
    toMillion(): number;
    /**
     * Return this number of parameters as billion.
     * @returns This number of parameters as billion.
     */
    toBillion(): number;
    weightSize(): Size;
}
export interface ModelConfig {
    readonly layers: number;
    readonly embeddingDimension: number;
    readonly attentionHeads: number;
}
/**
 * Compile target model basic infromation
 */
export interface ModelOptions {
    readonly parameters: Parameters;
    readonly config?: ModelConfig;
    readonly modelName?: string;
}
/**
 * Compile target model.
 */
export declare class Model {
    readonly modelId: string;
    readonly modelName: string;
    readonly options: ModelOptions;
    readonly bucket?: IBucket | undefined;
    readonly prefix?: string | undefined;
    /**
     * model informations at HuggingFace
     * @param modelId model id on the HuggingFace
     * @param options model basic information
     * @returns model instance
     */
    static fromHuggingFace(modelId: string, options?: ModelOptions): Model;
    /**
     * model informations at S3 Bucket
     * @param bucket Model stored S3 Bucket
     * @param prefix Model stored objects prefix
     * @param options model basic information
     * @returns model instance
     */
    static fromBucket(bucket: IBucket, prefix: string, options?: ModelOptions): Model;
    private static maybeParams;
    private constructor();
}
