import { Done } from '../../../../../Class/Functional/Done';
import { Semifunctional } from '../../../../../Class/Semifunctional';
import { ObjectUpdateType } from '../../../../../ObjectUpdateType';
import { System } from '../../../../../system';
import { J } from '../../../../../types/interface/J';
export interface I<T> {
    obj: J;
    path: string[];
    key: string;
}
export interface O<T> {
    type: ObjectUpdateType;
    path: string[];
    key: string;
    data: any;
}
export default class Subscribe<T> extends Semifunctional<I<T>, O<T>> {
    private _listener;
    private _unlisten;
    constructor(system: System);
    f({ obj, path, key }: I<T>, done: Done<O<T>>): Promise<void>;
    private _remove;
    d(): void;
    onIterDataInputData(name: string, data: any): void;
}
