/// 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; }