import file_system = require('../core/file_system');
import { ApiError } from '../core/api_error';
import file_flag = require('../core/file_flag');
import file = require('../core/file');
import Stats from '../core/node_fs_stats';
import preload_file = require('../generic/preload_file');
export default class AsyncMirror extends file_system.SynchronousFileSystem implements file_system.FileSystem {
    private _queue;
    private _queueRunning;
    private _sync;
    private _async;
    private _isInitialized;
    private _initializeCallbacks;
    constructor(sync: file_system.FileSystem, async: file_system.FileSystem);
    getName(): string;
    static isAvailable(): boolean;
    _syncSync(fd: preload_file.PreloadFile<any>): void;
    initialize(userCb: (err?: ApiError) => void): void;
    private checkInitialized();
    isReadOnly(): boolean;
    supportsSynch(): boolean;
    supportsLinks(): boolean;
    supportsProps(): boolean;
    private enqueueOp(op);
    renameSync(oldPath: string, newPath: string): void;
    statSync(p: string, isLstat: boolean): Stats;
    openSync(p: string, flag: file_flag.FileFlag, mode: number): file.File;
    unlinkSync(p: string): void;
    rmdirSync(p: string): void;
    mkdirSync(p: string, mode: number): void;
    readdirSync(p: string): string[];
    existsSync(p: string): boolean;
    chmodSync(p: string, isLchmod: boolean, mode: number): void;
    chownSync(p: string, isLchown: boolean, uid: number, gid: number): void;
    utimesSync(p: string, atime: Date, mtime: Date): void;
}
