import { ElementPropertyOption, ElementPropertyOptionCreationModel, ElementPropertyOptionRemoteModel, ElementPropertyOptionUpdateModel } from "./SDKElementPropertyOption"; export declare enum ElementPropertyType { text = "Text", number = "Number", boolean = "Boolean", select = "Select", generic = "Generic", link = "Link", url = "URL" } export declare enum ElementPropertyTargetElementType { token = "Token", component = "Component", documentationPage = "DocumentationPage" } export declare enum ElementPropertyLinkElementType { documentationItem = "DocumentationPage", figmaComponent = "FigmaComponent" } export type ElementPropertyRemoteModel = { id: string; persistentId: string; designSystemVersionId: string; meta: { name: string; description: string; }; codeName: string; isImmutable: boolean; type: ElementPropertyType; targetElementType: ElementPropertyTargetElementType; linkElementType?: ElementPropertyLinkElementType; options?: Array; }; export type ElementPropertyCreationModel = { type: ElementPropertyType; name: string; codeName: string; columnWidth: number; linkElementType?: ElementPropertyLinkElementType; description?: string; options?: Array; }; export type ElementPropertyUpdateModel = { name: string; description: string; codeName: string; options?: Array; }; export declare class ElementProperty { /** Versioned id of the element property (changes with version) */ idInVersion: string; /** Persistent id of the element property (stays across versions) */ id: string; /** Specific design system version this property is contained in */ designSystemVersionId: string; /** Property name */ name: string; /** Code property name - guaranteed to be present, unique and code-safe */ codeName: string; /** Property description */ description: string | null; /** Whether anything about this definition can be modified. * Its respective column can still be re-ordered and resized */ isImmutable: boolean; /** Base type */ propertyType: ElementPropertyType; /** Type of design system object this property is contained in - for example, if this property was configured for DS components, this will be of type `component` */ targetElementType: ElementPropertyTargetElementType; /** Type of design system object this property can be configured with */ linkElementType: ElementPropertyLinkElementType | null; /** Property options, only available for `select` type */ options: Array | null; constructor(model: ElementPropertyRemoteModel); /** Constructs directly manipulable update object */ toUpdateObject(): ElementPropertyUpdateModel; }