import { DataFile } from '@comyata/fe/DataFile';
import { DataNode, IDataNode } from '@comyata/run/DataNode';
import { ImportContext } from '@comyata/fe/FileEngine';
export declare class DataRef<TNode extends IDataNode> {
    file?: DataFile;
    /**
     * The parsed data to use for computing.
     */
    node?: TNode | IDataNode;
    /**
     * The loaded data value to use for parsing.
     */
    value?: {
        current: unknown;
    };
    constructor(file: DataRef<TNode>['file']);
    static withValue<TNode extends DataNode>(file: DataRef<TNode>['file'], value: unknown): DataRef<TNode>;
}
export declare class DataFileRegistry<TNode extends IDataNode> {
    readonly files: Map<string, DataFile<TNode>>;
    refs: Map<DataFile<TNode>, DataRef<TNode>>;
    fileLoader: Map<DataFile<TNode>, () => Promise<unknown>>;
    fileLoaderListener: Map<DataFile<TNode>, ((fileValue: unknown, err?: any) => void)[]>;
    private readonly resolveFile;
    constructor(resolveFile: DataFileRegistry<TNode>['resolveFile'], initialFiles?: DataFile<TNode>[]);
    fileRef(fileUrl: string, importContext?: ImportContext): DataFile<TNode>;
}
