///
import { ReturnCallback, SimpleCallback, Return2Callback, OpenWriteStreamMode, SubTree, ResourceType } from './CommonTypes';
import { FileSystemSerializer, ISerializableFileSystem } from './Serialization';
import { Readable, Writable } from 'stream';
import { IPropertyManager } from './PropertyManager';
import { RequestContext } from '../../../server/v2/RequestContext';
import { ILockManager } from './LockManager';
import { FileSystem } from './FileSystem';
import { Resource } from './Resource';
import { LockKind } from '../../../resource/v2/lock/LockKind';
import { Lock } from '../../../resource/v2/lock/Lock';
import { Path } from '../Path';
export declare class ContextualFileSystem implements ISerializableFileSystem {
fs: FileSystem;
context: RequestContext;
constructor(fs: FileSystem, context: RequestContext);
resource(path: Path | string): Resource;
delete(path: Path | string, callback: SimpleCallback): void;
delete(path: Path | string, depth: number, callback: SimpleCallback): void;
openWriteStream(path: Path | string, callback: Return2Callback): void;
openWriteStream(path: Path | string, estimatedSize: number, callback: Return2Callback): void;
openWriteStream(path: Path | string, targetSource: boolean, callback: Return2Callback): void;
openWriteStream(path: Path | string, targetSource: boolean, estimatedSize: number, callback: Return2Callback): void;
openWriteStream(path: Path | string, mode: OpenWriteStreamMode, callback: Return2Callback): void;
openWriteStream(path: Path | string, mode: OpenWriteStreamMode, estimatedSize: number, callback: Return2Callback): void;
openWriteStream(path: Path | string, mode: OpenWriteStreamMode, targetSource: boolean, callback: Return2Callback): void;
openWriteStream(path: Path | string, mode: OpenWriteStreamMode, targetSource: boolean, estimatedSize: number, callback: Return2Callback): void;
openReadStream(path: Path | string, callback: ReturnCallback): void;
openReadStream(path: Path | string, estimatedSize: number, callback: ReturnCallback): void;
openReadStream(path: Path | string, targetSource: boolean, callback: ReturnCallback): void;
openReadStream(path: Path | string, targetSource: boolean, estimatedSize: number, callback: ReturnCallback): void;
copy(pathFrom: Path | string, pathTo: Path | string, callback: ReturnCallback): void;
copy(pathFrom: Path | string, pathTo: Path | string, depth: number, callback: ReturnCallback): void;
copy(pathFrom: Path | string, pathTo: Path | string, overwrite: boolean, callback: ReturnCallback): void;
copy(pathFrom: Path | string, pathTo: Path | string, overwrite: boolean, depth: number, callback: ReturnCallback): void;
mimeType(path: Path | string, callback: ReturnCallback): void;
mimeType(path: Path | string, targetSource: boolean, callback: ReturnCallback): void;
size(path: Path | string, callback: ReturnCallback): void;
size(path: Path | string, targetSource: boolean, callback: ReturnCallback): void;
addSubTree(rootPath: Path | string, subTree: SubTree, callback: SimpleCallback): any;
addSubTree(rootPath: Path | string, resourceType: ResourceType, callback: SimpleCallback): any;
create(path: Path | string, type: ResourceType, callback: SimpleCallback): void;
create(path: Path | string, type: ResourceType, createIntermediates: boolean, callback: SimpleCallback): void;
etag(path: Path | string, callback: ReturnCallback): void;
move(pathFrom: Path | string, pathTo: Path | string, callback: ReturnCallback): void;
move(pathFrom: Path | string, pathTo: Path | string, overwrite: boolean, callback: ReturnCallback): void;
rename(pathFrom: Path | string, newName: string, callback: ReturnCallback): void;
rename(pathFrom: Path | string, newName: string, overwrite: boolean, callback: ReturnCallback): void;
availableLocks(path: Path | string, callback: ReturnCallback): void;
lockManager(path: Path | string, callback: ReturnCallback): void;
propertyManager(path: Path | string, callback: ReturnCallback): void;
readDir(path: Path | string, callback: ReturnCallback): void;
readDir(path: Path | string, retrieveExternalFiles: boolean, callback: ReturnCallback): void;
creationDate(path: Path | string, callback: ReturnCallback): void;
lastModifiedDate(path: Path | string, callback: ReturnCallback): void;
webName(path: Path | string, callback: ReturnCallback): void;
displayName(path: Path | string, callback: ReturnCallback): void;
type(path: Path | string, callback: ReturnCallback): void;
listDeepLocks(startPath: Path | string, callback: ReturnCallback<{
[path: string]: Lock[];
}>): any;
listDeepLocks(startPath: Path | string, depth: number, callback: ReturnCallback<{
[path: string]: Lock[];
}>): any;
isLocked(path: Path | string, callback: ReturnCallback): any;
isLocked(path: Path | string, depth: number, callback: ReturnCallback): any;
serializer(): FileSystemSerializer;
serialize(callback: (serializedData: any) => void): void;
}