import { Functional } from '../../../../Class/Functional';
import { System } from '../../../../system';
import { Dict } from '../../../../types/Dict';
import { J } from '../../../../types/interface/J';
export interface I<T extends Dict<any>, K extends keyof T> {
    obj: J<T>;
    key: K;
}
export interface O<T extends Dict<any>, K extends keyof T> {
    value: T[K];
}
export default class Ref<T, K extends keyof T> extends Functional<I<T, K>, O<T, K>> {
    constructor(system: System);
    private _unlisten;
    f({ obj, key }: I<T, K>, done: any): Promise<void>;
    d(): void;
}
