import { Node } from "./common/node"; import { Layers } from "./layers/layers"; import { Atoms } from "./atoms/atoms"; import { Molecules } from "./molecules/molecules"; import { Organisms } from "./organisms/organisms"; import { Code } from "./code/code"; import { Shade } from "./common/shade"; import { IThemeBuilder, IDesignSystem, INode, IVarGroup, IProperty } from "./interfaces"; /** * A design system * @category Main */ export declare class DesignSystem extends Node implements IDesignSystem { readonly themeBuilder: IThemeBuilder; /** All atoms for this design system. */ readonly atoms: Atoms; /** All molecules for this design system. */ readonly molecules: Molecules; /** All organisms for this design system. */ readonly organisms: Organisms; /** All accessibility layers for this design system */ readonly layers: Layers; /** All code generators for this design system. */ readonly code: Code; private metadata; private readonly dsShades; constructor(name: string, themeBuilder: IThemeBuilder, opts?: { sample?: boolean; }); clone(): DesignSystem; getNode(key: string): Node | undefined; registerNode(node: Node): void; getShade(key: string): Shade | undefined; findShade(key: string): Shade; registerShade(key: string, shade: Shade): void; getCSSVarGroup(node: INode): IVarGroup; listProperties(): IProperty[]; getTimeOfCreationInMs(): number; getTimeOfLastUpdateInMs(): number; isSample(): boolean; setIsSample(sample: boolean): void; private updateMetadata; store(): Promise; /** * Make copy of this design system under a new name. * @param newName The name of the new design system copy to make. * @returns A copy of this design system with a new name. */ copy(newName: string): Promise; serialize(): any; deserialize(obj: any): void; }