import { Object_ } from './Object';
import { Spec, Specs } from './types';
import { Dict } from './types/Dict';
import { GraphSpec } from './types/GraphSpec';
import { GraphSpecs } from './types/GraphSpecs';
import { R } from './types/interface/R';
export declare class Registry implements R {
    specs: Specs;
    specs_: Object_<Specs>;
    specsCount: Dict<number>;
    constructor(specs: Specs);
    newSpecId(): string;
    hasSpec(id: string): boolean;
    emptySpec(): GraphSpec;
    newSpec(spec: GraphSpec, specId?: string): GraphSpec;
    getSpec(id: string): Spec;
    setSpec(specId: string, spec: GraphSpec): void;
    injectSpecs(newSpecs: GraphSpecs): Dict<string>;
    shouldFork(id: string): boolean;
    forkSpec(spec: GraphSpec, specId?: string): [string, GraphSpec];
    registerUnit(id: string): void;
    unregisterUnit(id: string): void;
    deleteSpec(id: string): void;
}
