///
export interface FunctionOf1Arg {
(x: T): T2;
}
export interface EventHandler {
add: (f: (x: T) => T2) => void;
remove: (f: (x: T) => T2) => void;
removeAll: () => void;
handle: (x: T) => T3;
}
export declare class EventHandlerHolder {
constructor();
handlers: FunctionOf1Arg[];
add: (f: (x: T) => T2) => void;
remove: (f: (x: T) => T2) => void;
removeAll: () => void;
}
export declare class UnitEventHandler extends EventHandlerHolder implements EventHandler {
constructor();
handle: (x: T) => void;
}
export declare class PromisedEventHandler extends EventHandlerHolder> implements EventHandler, Promise> {
constructor();
handle: (x: T) => Promise;
}