declare type IEmit = T extends void ? () => void : (t: T) => void; export declare class Hook { private listeners; private allowEdits; add(cb: (t: T) => void): void; remove(cb: (t: T) => void): void; emit: IEmit; private _emit; private ensureAllowEdits; } export {};