import { FileAbstract, FileAbstractOptions, FileInfo } from '../FileAbstract';
import { LineInfo } from "../../../tools/model";
import { DataObject, LiteralUnion } from "../../../tools/typings";
export interface FileOptions<D extends DataObject = {}> extends FileAbstractOptions<D> {
    /** tag文件，仅用于.mcfunction，例如：tick load等 */
    tag?: LiteralUnion<'load' | 'tick', string>;
    /** 渲染入口 */
    render: (context: File<any>) => D | void;
}
/**
 * File类
 * 用于生成.mcfunction文件
 */
export declare class File<D extends DataObject = {}> extends FileAbstract<D> {
    #private;
    constructor(options: FileOptions<D>);
    /** file对象中的内容 */
    get list(): LineInfo<unknown>[];
    /** tag路径 */
    get tag(): string;
    /** tag的命名空间 */
    get tagNamespace(): string;
    /**
     * 添加注释
     */
    addComment(value: string | string[]): void;
    /**
     * 添加内容
     * @param value 内容
     */
    add(value: string | LineInfo | FileAbstract<D>): void;
    load(cached?: boolean): boolean;
    getData(cached?: boolean): D;
    create(dir: string): FileInfo;
    toJson(): LineInfo;
    toString(): string;
}
