/// <reference types="node" />
/// <reference types="node" />
import Archive from './archive';
import { ArchiveParams, AutomizerParams } from '../../types/types';
import IArchive, { ArchivedFile } from '../../interfaces/iarchive';
import { XmlDocument } from '../../types/xml-types';
import ArchiveJszip from './archive-jszip';
export default class ArchiveFs extends Archive implements IArchive {
    archive: boolean;
    params: ArchiveParams;
    dir: string;
    templatesDir: string;
    templateDir: string;
    outputDir: string;
    workDir: string;
    isActive: boolean;
    isRoot: boolean;
    filename: string;
    constructor(filename: string, params: ArchiveParams);
    private initialize;
    setPaths(): void;
    assertDirs(): Promise<void>;
    extractFile(file: string): Promise<void>;
    getTemplateDir(file: string): string;
    prepareWorkDir(templateDir: string): Promise<void>;
    fileExists(file: string): boolean;
    folder(dir: string): Promise<ArchivedFile[]>;
    read(file: string): Promise<string | Buffer>;
    getPath(file: string): string;
    write(file: string, data: string | Buffer): Promise<this>;
    remove(file: string): Promise<void>;
    output(location: string, params: AutomizerParams): Promise<void>;
    cleanupWorkDir(): Promise<void>;
    readXml(file: string): Promise<XmlDocument>;
    writeXml(file: string, XmlDocument: XmlDocument): void;
    /**
     * Used for worksheets only
     **/
    extract(file: string): Promise<ArchiveJszip>;
}
