/// <reference types="node" resolution-mode="require"/>
import type { Store } from 'mem-fs';
import type Vinyl from 'vinyl';
import read from './actions/read.js';
import readJSON from './actions/read-json.js';
import exists from './actions/exists.js';
import write from './actions/write.js';
import writeJSON from './actions/write-json.js';
import extendJSON from './actions/extend-json.js';
import append from './actions/append.js';
import appendTpl from './actions/append-tpl.js';
import deleteAction from './actions/delete.js';
import { copy, _copySingle } from './actions/copy.js';
import { copyTpl, _processTpl } from './actions/copy-tpl.js';
import { copyAsync, _copySingleAsync } from './actions/copy-async.js';
import copyTplAsync from './actions/copy-tpl-async.js';
import move from './actions/move.js';
import commit from './actions/commit.js';
import commitFileAsync from './actions/commit-file-async.js';
import dump from './actions/dump.js';
export type { AppendOptions } from './actions/append.js';
export type { CopyOptions } from './actions/copy.js';
export type { CopyAsyncOptions } from './actions/copy-async.js';
export type { MemFsEditorFileDump } from './actions/dump.js';
export interface MemFsEditorFile {
    path: string;
    stat?: {
        mode?: number;
    } | null;
    contents: Buffer | null;
    committed?: boolean;
    isNew?: boolean;
    state?: 'modified' | 'deleted';
    stateCleared?: 'modified' | 'deleted';
}
export interface VinylMemFsEditorFile extends Omit<Vinyl, 'contents' | 'stat'>, MemFsEditorFile {
}
export declare class MemFsEditor<EditorFile extends MemFsEditorFile = VinylMemFsEditorFile> {
    store: Store<EditorFile>;
    constructor(store: Store<EditorFile>);
}
export interface MemFsEditor<EditorFile extends MemFsEditorFile = VinylMemFsEditorFile> {
    read: typeof read;
    readJSON: typeof readJSON;
    exists: typeof exists;
    write: typeof write;
    writeJSON: typeof writeJSON;
    extendJSON: typeof extendJSON;
    append: typeof append;
    appendTpl: typeof appendTpl;
    delete: typeof deleteAction;
    copy: typeof copy;
    _copySingle: typeof _copySingle;
    copyTpl: typeof copyTpl;
    _processTpl: typeof _processTpl;
    copyAsync: typeof copyAsync;
    _copySingleAsync: typeof _copySingleAsync;
    copyTplAsync: typeof copyTplAsync;
    move: typeof move;
    commit: typeof commit<EditorFile>;
    commitFileAsync: typeof commitFileAsync<EditorFile>;
    dump: typeof dump<EditorFile>;
}
export declare function create(store: any): MemFsEditor<VinylMemFsEditorFile>;
