import { MethodCallArgs } from '../WebDAVRequest';
import { XMLElement } from 'xml-js-builder';
import { IResource } from '../../../resource/v1/IResource';
import { FSPath } from '../../../manager/v1/FSPath';
import { Lock } from '../../../resource/v1/lock/Lock';
export declare type EventsName = 'create' | 'delete' | 'copy' | 'move' | 'lock' | 'refreshLock' | 'unlock' | 'setProperty' | 'removeProperty' | 'write' | 'read' | 'addChild';
export declare type DetailsType = IResource | FSPath | Lock | XMLElement;
export declare type Listener = (arg: MethodCallArgs, subjectResource: IResource, details?: DetailsType) => void;
export declare function invoke(event: EventsName, arg: MethodCallArgs, subjectResource?: IResource, details?: DetailsType): void;
export declare function register(event: EventsName, listener: Listener): void;
export declare function registerWithName(event: EventsName, name: string, listener: Listener): void;
export declare function clear(event: EventsName): void;
export declare function clearAll(event: EventsName): void;
export declare function remove(event: EventsName, listener: Listener): void;
export declare function removeByName(event: EventsName, name: string): void;
