import { DTODesignSystem } from "@supernova-studio/client"; import { DesignSystemRole } from "../enums/SDKDesignSystemRole"; export type DesignSystemSwitcher = { isEnabled: boolean; designSystemIds: Array; }; export type DesignSystemAccessMode = "Open" | "InviteOnly"; export type DesignSystemTransportModel = Pick; export declare class DesignSystem { /** Unique identifier of design system */ id: string; /** Unique identifier of workspace that contains the design system */ workspaceId: string; /** Design system name */ name: string; /** Design system description */ description: string; /** Identifier of the uploaded icon file. Null when no icon is set */ iconFileId: string | null; /** Public URL of the design system icon. Null when no icon is set */ iconUrl: string | null; /** If enabled, parts of the design system can be accessed by public (for example, documentation site) */ isPublic: boolean; /** If set, signals that multibrand functionality is enabled for this design system */ isMultiBrand: boolean; /** If set, signals that approval feature is enabled */ isApprovalFeatureEnabled: boolean; /** If set, restricts publishing to only pages with ready to publish state */ approvalRequiredForPublishing: boolean; /** Unique identifier of exporter package used for the documentation */ documentationExporterId: string; /** DocumentationLegacy URL slug */ documentationSlug: string; /** DocumentationLegacy URL slug - user override */ documentationUserSlug: string | null; /** Binding multiple design systems together */ designSystemSwitcher: DesignSystemSwitcher; /** Access mode of the design system */ accessMode: DesignSystemAccessMode; /** Effective role of the user in the design system. * Is `null` the DS role is inherited from the WS. */ effectiveRole: DesignSystemRole | null; /** Flag which determines if the design system is available to the user. * If `false` then the user doesn't have access to the design system, but knows about its existence (e.g. Owners). */ isAvailableToUser: boolean; /** Unique identifier of the shared draft version of the design system */ sharedDraftId: string; constructor(model: Omit & { isPublic: boolean; }); /** Constructs representation that can be used to transport the instantiated object as JSON, for example for SSR <> Client use-cases. Reconstruct to class instance using `fromTransport` */ toTransport(): DesignSystemTransportModel; /** Reconstructs class from the transport model */ static fromTransport(model: DesignSystemTransportModel): DesignSystem; }