import { MethodCallArgs } from '../../../server/v1/MethodCallArgs';
import { IResource } from '../../../resource/v1/IResource';
export declare type PrivilegeManagerCallback = (error: Error, hasAccess: boolean) => void;
export declare type PrivilegeManagerMethod = (arg: MethodCallArgs, resource: IResource, callback: PrivilegeManagerCallback) => void;
export declare type BasicPrivilege = 'all' | 'canCreate' | 'canDelete' | 'canMove' | 'canRename' | 'canAppend' | 'canWrite' | 'canRead' | 'canSource' | 'canGetMimeType' | 'canGetSize' | 'canListLocks' | 'canSetLock' | 'canRemoveLock' | 'canGetAvailableLocks' | 'canGetLock' | 'canAddChild' | 'canRemoveChild' | 'canGetChildren' | 'canSetProperty' | 'canGetProperty' | 'canGetProperties' | 'canRemoveProperty' | 'canGetCreationDate' | 'canGetLastModifiedDate' | 'canGetWebName' | 'canGetType';
export declare function requirePrivilege(privilege: string | BasicPrivilege | string[] | BasicPrivilege[], arg: MethodCallArgs, resource: IResource, callback: PrivilegeManagerCallback): void;
export interface IPrivilegeManager {
    canCreate: PrivilegeManagerMethod;
    canDelete: PrivilegeManagerMethod;
    canMove: PrivilegeManagerMethod;
    canRename: PrivilegeManagerMethod;
    canAppend: PrivilegeManagerMethod;
    canWrite: PrivilegeManagerMethod;
    canRead: PrivilegeManagerMethod;
    canSource: PrivilegeManagerMethod;
    canGetMimeType: PrivilegeManagerMethod;
    canGetSize: PrivilegeManagerMethod;
    canListLocks: PrivilegeManagerMethod;
    canSetLock: PrivilegeManagerMethod;
    canRemoveLock: PrivilegeManagerMethod;
    canGetAvailableLocks: PrivilegeManagerMethod;
    canGetLock: PrivilegeManagerMethod;
    canAddChild: PrivilegeManagerMethod;
    canRemoveChild: PrivilegeManagerMethod;
    canGetChildren: PrivilegeManagerMethod;
    canSetProperty: PrivilegeManagerMethod;
    canGetProperty: PrivilegeManagerMethod;
    canGetProperties: PrivilegeManagerMethod;
    canRemoveProperty: PrivilegeManagerMethod;
    canGetCreationDate: PrivilegeManagerMethod;
    canGetLastModifiedDate: PrivilegeManagerMethod;
    canGetWebName: PrivilegeManagerMethod;
    canGetType: PrivilegeManagerMethod;
}
export declare function hasNoWriteLock(arg: MethodCallArgs, resource: IResource, callback: PrivilegeManagerCallback): void;
