import { FileExtension } from '../../constants';
import { Explorer, FileStructureEntityProps, IAbstractFileStructureEntity } from '../../../ioc';
export declare class FileStructureEntityModel<FileDataInterface> implements IAbstractFileStructureEntity<FileDataInterface> {
    readonly privateName: string;
    readonly name: string;
    readonly defaultPath: string;
    readonly defaultExtension: FileExtension;
    data: FileDataInterface | null;
    path: string | null;
    extension: FileExtension | null;
    explorer: Explorer | null;
    constructor({ privateName, name, defaultPath, defaultExtension }: FileStructureEntityProps);
    clearCache(): void;
    find(): Promise<null | {
        data: FileDataInterface;
        path: string;
        extension: FileExtension;
        explorer: Explorer;
    }>;
    create(fileData?: FileDataInterface, fileExtension?: FileExtension): Promise<void>;
    read(): Promise<null | FileDataInterface>;
    update(newData?: unknown): Promise<void>;
    delete(): Promise<void>;
    private writeFile;
    private addFileExtension;
    private replaceExtensionPlaceholder;
    private mapFileContent;
    private getFileIsExists;
}
