import { Bindings, ListenerBindings } from "./bindings"; export interface ListenerEvent { existing?: string[]; instance: any; listener: Listener; instances?: Record; options?: Record; } declare type ListenerInstances = Record; declare type ListenerPromises = Record[]>; export declare class Listener { id: string; bindings: Record; instances: ListenerInstances; pending: ListenerPromises; private listenerFns; private originalFns; constructor(id: string); bind(lid: string[], matchId: string[], ...targets: ListenerBindings[]): void; load(lid_: string[], instances: Record, options?: Record): Record | Promise>; parseId(id: string): [string, string]; reset(lid: string[]): void; private applyInstanceFunctions; private applyInstanceId; private callListenerBeforeLoaded; private callListenerLoaded; private callWithEvent; private diffInstances; private emit; private extractListeners; private listenerBeforeLoaded; private listenerLoaded; private listenerWrapper; private resolvePending; private waitForPending; } export declare const instance: Listener; export default instance; export declare const bind: typeof instance.bind; export declare const load: typeof instance.load; export declare const reset: typeof instance.reset;