///
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 { ILockManagerAsync } 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;
deleteAsync(): Promise;
deleteAsync(depth: number): Promise;
openWriteStreamAsync(): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(estimatedSize: number): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(targetSource: boolean): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(targetSource: boolean, estimatedSize: number): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(mode: OpenWriteStreamMode): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(mode: OpenWriteStreamMode, estimatedSize: number): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(mode: OpenWriteStreamMode, targetSource: boolean): Promise<{
stream: Writable;
created: boolean;
}>;
openWriteStreamAsync(mode: OpenWriteStreamMode, targetSource: boolean, estimatedSize: number): Promise<{
stream: Writable;
created: boolean;
}>;
openReadStreamAsync(): Promise;
openReadStreamAsync(estimatedSize: number): Promise;
openReadStreamAsync(targetSource: boolean): Promise;
openReadStreamAsync(targetSource: boolean, estimatedSize: number): Promise;
copyAsync(pathTo: Path | string): Promise;
copyAsync(pathTo: Path | string, depth: number): Promise;
copyAsync(pathTo: Path | string, overwrite: boolean): Promise;
copyAsync(pathTo: Path | string, overwrite: boolean, depth: number): Promise;
mimeTypeAsync(): Promise;
mimeTypeAsync(targetSource: boolean): Promise;
sizeAsync(): Promise;
sizeAsync(targetSource: boolean): Promise;
addSubTreeAsync(subTree: SubTree, callback: SimpleCallback): any;
addSubTreeAsync(resourceType: ResourceType, callback: SimpleCallback): any;
createAsync(type: ResourceType): Promise;
createAsync(type: ResourceType, createIntermediates: boolean): Promise;
etagAsync(): Promise;
moveAsync(pathTo: Path | string): Promise;
moveAsync(pathTo: Path | string, overwrite: boolean): Promise;
renameAsync(newName: string): Promise;
renameAsync(newName: string, overwrite: boolean): Promise;
availableLocksAsync(): Promise;
lockManagerAsync(): Promise;
propertyManagerAsync(): Promise;
readDirAsync(): Promise;
readDirAsync(retrieveExternalFiles: boolean): Promise;
creationDateAsync(): Promise;
lastModifiedDateAsync(): Promise;
webNameAsync(): Promise;
displayNameAsync(): Promise;
typeAsync(): Promise;
listDeepLocksAsync(): Promise<{
[path: string]: Lock[];
}>;
listDeepLocksAsync(depth: number): Promise<{
[path: string]: Lock[];
}>;
isLockedAsync(): Promise;
isLockedAsync(depth: number): Promise;
}