import { FileInfo, FileAbstract } from "./file/FileAbstract";
import { TextToken } from "../lib/text";
export interface PackOptions {
    /** 包名 */
    packname: string;
    /** 加载的模块 */
    files?: FileAbstract<any>[];
    /** 游戏版本，应用于mcmeta.json */
    version?: string;
    /** 描述，应用于mcmeta.json */
    description?: string | TextToken[];
    /** 是否开启作用域 */
    scope?: string | boolean;
    /** 子模块 */
    modules?: Pack[];
}
interface Mcmeta {
    pack_format?: number;
    description?: string;
}
export declare class Pack {
    #private;
    isModule: boolean;
    /**
     * * 1.13-1.14 版本为 4
     * * 1.15 版本为 5
     * * 1.16.2-1.16.4 版本为 6
     * * 1.17 版本为 7
     * @param gameVersion 游戏版本，例如1.17.1
     */
    static getPackVersion(gameVersion?: string): 3 | 4 | 5 | 6 | 7;
    static cachePack(pack: Pack): void;
    static existPack(pack: Pack): boolean;
    static existFile(file: FileAbstract<any>): boolean;
    static cacheFile(file: FileAbstract<any>): void;
    constructor(props: PackOptions);
    load(): void;
    get packname(): string;
    get scope(): string | boolean;
    add(file: FileAbstract<any>): void;
    get mcmeta(): Mcmeta;
    private createMcmeta;
    private createFunctionTagFile;
    create(): {
        [packname: string]: FileInfo[];
    };
}
export {};
