massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-json / node_modules / vscode-jsonrpc / lib / common / events.d.ts
diff --git a/.config/coc/extensions/node_modules/coc-json/node_modules/vscode-jsonrpc/lib/common/events.d.ts b/.config/coc/extensions/node_modules/coc-json/node_modules/vscode-jsonrpc/lib/common/events.d.ts
new file mode 100644 (file)
index 0000000..3d8d063
--- /dev/null
@@ -0,0 +1,39 @@
+import { Disposable } from './disposable';
+/**
+ * Represents a typed event.
+ */
+export interface Event<T> {
+    /**
+     *
+     * @param listener The listener function will be call when the event happens.
+     * @param thisArgs The 'this' which will be used when calling the event listener.
+     * @param disposables An array to which a {{IDisposable}} will be added. The
+     * @return
+    */
+    (listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable;
+}
+export declare namespace Event {
+    const None: Event<any>;
+}
+export interface EmitterOptions {
+    onFirstListenerAdd?: Function;
+    onLastListenerRemove?: Function;
+}
+export declare class Emitter<T> {
+    private _options?;
+    private static _noop;
+    private _event;
+    private _callbacks;
+    constructor(_options?: EmitterOptions | undefined);
+    /**
+     * For the public to allow to subscribe
+     * to events from this Emitter
+     */
+    get event(): Event<T>;
+    /**
+     * To be kept private to fire an event to
+     * subscribers
+     */
+    fire(event: T): any;
+    dispose(): void;
+}