import { System } from '../system';
import { ComponentSpec, GraphComponentSpec, PinsSpec, Spec, Specs } from '../types';
import { Dict } from '../types/Dict';
import { GraphSpec } from '../types/GraphSpec';
import { GraphSpecs } from '../types/GraphSpecs';
import { IO } from '../types/IO';
export declare function getSpec(specs: Specs, id: string): Spec;
export declare function getGraphSpec(specs: Specs, id: string): GraphSpec;
export declare function getSpecs(specs: Specs): Specs;
export declare function hasSpec(specs: Specs, id: string): boolean;
export declare function getComponentSpec(specs: Specs, id: string): ComponentSpec;
export declare function getSpecPins(specs: Specs, id: string, type: IO): PinsSpec;
export declare function getSpecPinPlugs(specs: Specs, id: string, type: IO, pinId: string): PinsSpec;
export declare function getSpecInputs(specs: Specs, id: string): PinsSpec;
export declare function getSpecOutputs(specs: Specs, id: string): PinsSpec;
export declare function getSpecPinPlugCount(specs: Specs, id: string, type: IO, pinId: string): number;
export declare function getSpecPinCount(specs: Specs, id: string, type: IO): number;
export declare function getSpecInputCount(specs: Specs, id: string): number;
export declare function getSpecOutputCount(specs: Specs, id: string): number;
export declare function emptySpec(init?: Partial<GraphSpec>): GraphSpec;
export declare function emptyShell(from: GraphSpec, init?: Partial<GraphSpec>): GraphSpec;
export declare function getSpecName(specs: Specs, id: string): string;
export declare function getSpecTitle(specs: Specs, id: string): string;
export declare function newSpecId(specs: Specs): string;
export declare function newUnitIdInSpecId(specs: Specs, id: string, unit_spec_id: string, blacklist?: Set<string>): string;
export declare function newUnitId(specs: Specs, spec: GraphSpec, unit_spec_id: string, blacklist?: Set<string>): string;
export declare function newUnitIdFromName(spec: GraphSpec, name: string, blacklist?: Set<string>): string;
export declare function newMergeIdInSpec(spec: GraphSpec, blacklist?: Set<string>): string;
export declare function hasUnitId(spec: GraphSpec, unit_id: string): boolean;
export declare function hasMergeId(spec: GraphSpec, merge_id: string): boolean;
export declare function sameSpec(a_spec: GraphSpec, b_spec: GraphSpec): boolean;
export declare function isSystemSpecId(specs: Specs, specId: string): boolean;
export declare function isSystemSpec(spec: Spec): boolean;
export declare function isEmptySpec(spec: GraphSpec): boolean;
export declare function __injectSpecs(system: System, new_specs: GraphSpecs): Dict<string>;
export declare function injectSpecs(specs: Specs, new_specs: GraphSpecs): Dict<string>;
export declare function getSpecRenderById(specs: Specs, id: string): boolean | undefined;
export declare function getSpecRender(spec: Spec): boolean | undefined;
export declare function isComponentId(specs: Specs, id: string): boolean;
export declare function isComponentSpec(spec: Spec): boolean;
export declare function hasSubComponent(spec: GraphSpec, subComponentId: string): boolean;
export declare function hasSubComponents(spec: GraphSpec): boolean;
export declare function shouldRender(componentSpec: GraphComponentSpec): boolean;
export declare function findInputDataExamples(specs: Specs, spec_id: string, input_id: string): string[];
