///
import { Draft } from "immer";
import { UnknownComponent } from "./component";
export interface WithComponents {
components: ReadonlyMap;
}
export declare function currentIfDraft(val: T | Draft): T;
/**
* Topologically sort a directed graph stored as a map from nodes to incoming edges.
*/
export declare function topologicalSort(graph: Map>): T[];
export declare function subset(a: ReadonlySet, b: ReadonlySet): boolean;
export declare function setEqual(a: ReadonlySet, b: ReadonlySet): boolean;
export declare function filterSet(a: ReadonlySet, f: (x: T) => boolean): Set;
export declare function setDifference(a: ReadonlySet, b: ReadonlySet): Set;
export declare function setIntersection(a: ReadonlySet, b: ReadonlySet): Set;
export declare class DefaultMap extends Map {
private factory;
constructor(factory: (key: K) => V, entries?: Iterable);
get(key: K): V;
}
export declare function isPromise(p: unknown): p is Promise;