import { $ } from '../../../../../Class/$';
import { Holder } from '../../../../../Class/Holder';
import { System } from '../../../../../system';
import { Component_ } from '../../../../../types/interface/Component';
import { EV } from '../../../../../types/interface/E';
import { V } from '../../../../../types/interface/V';
export interface I<T> {
    component: Component_<any>;
    event: string;
    done: string;
}
export interface O<T> {
    event: EV & V & $;
    data: any;
}
export default class Listener<T> extends Holder<I<T>, O<T>> {
    private _unlisten;
    constructor(system: System);
    f({ component, event }: I<T>): Promise<void>;
    d(): void;
}
