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