import { Optional } from "helpers/ts-type-helpers";
import { AreaChartOverride, BarChartOverride, BooleanPropDefinition, BooleanValue, BorderToken, BorderTokenAlias, BorderValue, CalendarOverride, ClickPopover, Collection, ColorPalette, ColorToken, ColorTokenAlias, ColorTokenWithAlias, ColorTokenWithValue, ColorValue, ContextMenuPopover, CornerToken, CornerTokenAlias, CornerValue, CustomComponentDefinition, CustomComponentInstance, CustomCompoundComponentDefinition, CustomOverride, CustomPageComponentDefinition, CustomStaticFontAsset, CustomVariableFontAsset, DraftRelease, DropdownPopover, EnumOption, EnumOptionId, EnumPropDefinition, EnumValue, Flow, FontAssetId, FontToken, FontTokenAlias, FontValue, HoverPopover, IconAsset, IconAssetId, IconOverride, IconPrimitive, IconPropDefinition, IconPropDefinitionInstance, IconValue, ImageAsset, ImageAssetId, ImageOverride, ImagePrimitive, ImagePropDefinition, ImagePropDefinitionInstance, ImageValue, InputOverride, InputPrimitive, InstancePropsOnlyValues, LayoutData, LineChartOverride, LoaderOverride, LoaderPrimitive, NodeId, NodeType, NumberPropDefinition, NumberPropDefinitionInstance, NumberValue, PieChartOverride, PopoverRootNode, Project, PropDefinition, Release, Selector, SelectorId, ShadowToken, ShadowTokenAlias, ShadowValue, SlotInstancePrimitive, SlotPropDefinition, SlotValue, SpacingData, SpacingToken, SpacingValue, StackOverride, StackPrimitive, TableBodyOverride, TableHeadOverride, TableOverride, TableRowOverride, TextareaOverride, TextareaPrimitive, TextOverride, TextPrimitive, TextPropDefinition, TextPropDefinitionInstance, TextValue, Token, TokenAlias, TooltipPopover } from "./types";
interface Base {
    type: string;
    category: string;
    id: string;
}
type OptionalKeys = "type" | "category" | "id";
type OptionalData<T extends Base, K extends keyof T = OptionalKeys> = Optional<T, OptionalKeys | K>;
type OptionalNodeKeys = "name";
type OptionalNodeType<T extends NodeType, Additional extends keyof T = OptionalNodeKeys> = Optional<T, OptionalKeys | Additional>;
/**
 * Id generation
 */
export declare function generateNodeId(): NodeId;
export declare function generateEnumOptionId(): EnumOptionId;
export declare function generateIconAssetId(): IconAssetId;
export declare function generateFontAssetId(): FontAssetId;
export declare function generateImageAssetId(): ImageAssetId;
export declare function generateSelectorId(): SelectorId;
/**
 * Assets
 */
export declare function makeIconAsset(data: OptionalData<IconAsset>): IconAsset;
export declare function makeCustomStaticFontAsset(data: OptionalData<CustomStaticFontAsset, "kind" | "fontType">): CustomStaticFontAsset;
export declare function makeCustomVariableFontAsset(data: OptionalData<CustomVariableFontAsset, "kind" | "fontType">): CustomVariableFontAsset;
export declare function makeImageAsset(data: OptionalData<ImageAsset>): ImageAsset;
/**
 * Values
 */
export declare function makeTextValue(data: Optional<TextValue, "category" | "type">): TextValue;
export declare function makeNumberValue(data: Optional<NumberValue, "category" | "type">): NumberValue;
export declare function makeBooleanValue(data: Optional<BooleanValue, "category" | "type">): BooleanValue;
export declare function makeEnumOption(data: Optional<EnumOption, "category" | "id">): EnumOption;
export declare function makeEnumValue(data: Optional<EnumValue, "category" | "type">): EnumValue;
export declare function makeIconValue(data: Optional<IconValue, "category" | "type">): IconValue;
export declare function makeImageValue(data: Optional<ImageValue, "category" | "type">): ImageValue;
export declare function makeSlotValue(data: Optional<SlotValue, "category" | "type">): SlotValue;
export declare function makeColorValue(data: Optional<ColorValue, "category" | "type">): ColorValue;
export declare function makeFontValue(data: Optional<FontValue, "category" | "type">): FontValue;
export declare function makeCornerValue(data: Optional<CornerValue, "category" | "type">): CornerValue;
export declare function makeBorderValue(data: Optional<BorderValue, "category" | "type">): BorderValue;
export declare function makeShadowValue(data: Optional<ShadowValue, "category" | "type">): ShadowValue;
export declare function makeSpacingValue(data: Optional<SpacingValue, "category" | "type">): SpacingValue;
/**
 * Selectors
 */
export declare function makeSelector(data: Optional<Selector, "category" | "id" | "overrides">): Selector;
export declare function makeDefaultSelector(): Selector;
/**
 * Overrides
 */
export declare function makeStackOverride(data: Optional<StackOverride, "category" | "type">): StackOverride;
export declare function makeTextOverride(data: Optional<TextOverride, "category" | "type">): TextOverride;
export declare function makeIconOverride(data: Optional<IconOverride, "category" | "type">): IconOverride;
export declare function makeLoaderOverride(data: Optional<LoaderOverride, "category" | "type">): LoaderOverride;
export declare function makeTableRowOverride(data: Optional<TableRowOverride, "category" | "type">): TableRowOverride;
export declare function makeTableOverride(data: Optional<TableOverride, "category" | "type">): TableOverride;
export declare function makeTableHeadOverride(data: Optional<TableHeadOverride, "category" | "type">): TableHeadOverride;
export declare function makeTableBodyOverride(data: Optional<TableBodyOverride, "category" | "type">): TableBodyOverride;
export declare function makeInputOverride(data: Optional<InputOverride, "category" | "type">): InputOverride;
export declare function makeTextareaOverride(data: Optional<TextareaOverride, "category" | "type">): TextareaOverride;
export declare function makeImageOverride(data: Optional<ImageOverride, "category" | "type">): ImageOverride;
export declare function makeCustomOverride(data: Optional<CustomOverride, "category" | "type">): CustomOverride;
export declare function makeAreaChartOverride(data: Optional<AreaChartOverride, "category" | "type">): AreaChartOverride;
export declare function makeBarChartOverride(data: Optional<BarChartOverride, "category" | "type">): BarChartOverride;
export declare function makeLineChartOverride(data: Optional<LineChartOverride, "category" | "type">): LineChartOverride;
export declare function makePieChartOverride(data: Optional<PieChartOverride, "category" | "type">): PieChartOverride;
export declare function makeCalendarOverride(data: Optional<CalendarOverride, "category" | "type">): CalendarOverride;
/**
 * Tokens
 */
export declare function makeColorToken(data: OptionalData<ColorToken>): ColorToken;
export declare function makeColorTokenWithValue(data: OptionalData<ColorTokenWithValue>): ColorTokenWithValue;
export declare function makeColorTokenWithAlias(data: OptionalData<ColorTokenWithAlias>): ColorTokenWithAlias;
export declare function makeFontToken(data: OptionalData<FontToken>): FontToken;
export declare function makeBorderToken(data: OptionalData<BorderToken>): BorderToken;
export declare function makeCornerToken(data: OptionalData<CornerToken>): CornerToken;
export declare function makeShadowToken(data: OptionalData<ShadowToken>): ShadowToken;
export declare function makeSpacingToken(data: OptionalData<SpacingToken>): SpacingToken;
/**
 * Token Aliases
 */
export declare function makeColorTokenAlias(data: Optional<ColorTokenAlias, "category" | "type">): ColorTokenAlias;
export declare function makeFontTokenAlias(data: Optional<FontTokenAlias, "category" | "type">): FontTokenAlias;
export declare function makeBorderTokenAlias(data: Optional<BorderTokenAlias, "category" | "type">): BorderTokenAlias;
export declare function makeCornerTokenAlias(data: Optional<CornerTokenAlias, "category" | "type">): CornerTokenAlias;
export declare function makeShadowTokenAlias(data: Optional<ShadowTokenAlias, "category" | "type">): ShadowTokenAlias;
/**
 * Color Palettes
 */
export declare function makeColorPalette(data: Optional<ColorPalette, "category" | "id">): ColorPalette;
/**
 * Prop Definition Instances
 */
export declare function makeIconPropDefinitionInstance(data: OptionalData<IconPropDefinitionInstance>): IconPropDefinitionInstance;
export declare function makeTextPropDefinitionInstance(data: OptionalData<TextPropDefinitionInstance>): TextPropDefinitionInstance;
export declare function makeNumberPropDefinitionInstance(data: OptionalData<NumberPropDefinitionInstance>): NumberPropDefinitionInstance;
export declare function makeImagePropDefinitionInstance(data: OptionalData<ImagePropDefinitionInstance>): ImagePropDefinitionInstance;
export declare function makeInstanceProps(propDefinitions: PropDefinition[]): InstancePropsOnlyValues;
/**
 * Styles
 */
/**
 * Popovers
 */
export declare function makePopoverRoot(data: Optional<OptionalNodeType<PopoverRootNode, OptionalNodeKeys | "isVisible">, "layout" | "alignment">): PopoverRootNode;
export declare function makeHoverPopover(data: Optional<HoverPopover, "id" | "category" | "type">): HoverPopover;
export declare function makeClickPopover(data: Optional<ClickPopover, "id" | "category" | "type">): ClickPopover;
export declare function makeDropdownPopover(data: Optional<DropdownPopover, "id" | "category" | "type">): DropdownPopover;
export declare function makeContextMenuPopover(data: Optional<ContextMenuPopover, "id" | "category" | "type">): ContextMenuPopover;
export declare function makeTooltipPopover(data: Optional<TooltipPopover, "id" | "category" | "type">): TooltipPopover;
/**
 * Primitives
 */
export declare function makeIconPrimitive(data: OptionalNodeType<IconPrimitive, OptionalNodeKeys | "isVisible">): IconPrimitive;
export declare function makeLoaderPrimitive(data: OptionalNodeType<LoaderPrimitive, OptionalNodeKeys | "isVisible">): LoaderPrimitive;
export declare function makeStackPrimitive(data: OptionalNodeType<StackPrimitive, OptionalNodeKeys | "padding" | "background" | "border" | "corner" | "shadow" | "slotData" | "isVisible" | "overflow">): StackPrimitive;
export declare function makeTextPrimitive(data: OptionalNodeType<TextPrimitive, OptionalNodeKeys | "isVisible">): TextPrimitive;
export declare function makeImagePrimitive(data: OptionalNodeType<ImagePrimitive, OptionalNodeKeys | "isVisible">): ImagePrimitive;
export declare function makeSlotInstancePrimitive(data: Optional<OptionalNodeType<SlotInstancePrimitive, OptionalNodeKeys | "isVisible">, "layout" | "alignment">): SlotInstancePrimitive;
/**
 * Component Instances
 */
export declare function makeInputInstance(data: OptionalNodeType<InputPrimitive, OptionalNodeKeys | "background" | "corner" | "shadow" | "border" | "padding" | "isVisible">): InputPrimitive;
export declare function makeTextareaInstance(data: OptionalNodeType<TextareaPrimitive, OptionalNodeKeys | "background" | "corner" | "shadow" | "border" | "padding" | "isVisible">): TextareaPrimitive;
export declare function makeCustomComponentInstance(data: Optional<OptionalNodeType<CustomComponentInstance>, "childrenIds" | "layout" | "alignment" | "isVisible" | "size">): CustomComponentInstance;
/**
 * Component Definitions
 */
export declare const DEFAULT_PAGE_PREVIEW_WIDTH = 1100;
export declare const DEFAULT_MOBILE_PREVIEW_WIDTH = 400;
export declare function makeCustomPageDefinition(data: Omit<OptionalData<CustomPageComponentDefinition>, "propDefinitions" | "compoundComponentIds" | "defaultSelectorId" | "selectors" | "displayOptions">): CustomPageComponentDefinition;
export declare function makeCustomComponentDefinition(data: Omit<Optional<OptionalData<CustomComponentDefinition>, "selectors" | "defaultSelectorId" | "displayOptions" | "compoundComponentIds">, "propDefinitions">): CustomComponentDefinition;
export declare function makeCustomCompoundComponentDefinition(data: Omit<Optional<OptionalData<CustomCompoundComponentDefinition>, "selectors" | "defaultSelectorId" | "displayOptions">, "propDefinitions">): CustomCompoundComponentDefinition;
/**
 * Prop Definitions
 */
export declare function makeIconPropDefinition(data: OptionalData<IconPropDefinition>): IconPropDefinition;
export declare function makeTextPropDefinition(data: OptionalData<TextPropDefinition>): TextPropDefinition;
export declare function makeNumberPropDefinition(data: OptionalData<NumberPropDefinition>): NumberPropDefinition;
export declare function makeEnumPropDefinition(data: OptionalData<EnumPropDefinition, "defaultValue">): EnumPropDefinition;
export declare function makeBooleanPropDefinition(data: OptionalData<BooleanPropDefinition, "defaultValue">): BooleanPropDefinition;
export declare function makeImagePropDefinition(data: OptionalData<ImagePropDefinition>): ImagePropDefinition;
export declare function makeSlotPropDefinition(data: OptionalData<SlotPropDefinition>): SlotPropDefinition;
/**
 * Collection
 */
export declare function makeCollection(data: Optional<Collection, "category" | "id">): Collection;
/**
 * Flows
 */
export declare function makeFlow(data: Optional<Flow, "category" | "id">): Flow;
/**
 * Releases
 */
export declare function makeRelease(data: OptionalData<Release>): Release;
export declare function makeDraftRelease(data: OptionalData<DraftRelease>): DraftRelease;
/**
 * Projects
 */
export declare function makeProject(data: Optional<Project, "category" | "schemaVersion">): Project;
/**
 * Helpers
 */
export declare function makeSpacingData(value: number | "fill"): SpacingData;
export declare function makeTokenAliasForTokenType(tokenType: Token["type"], tokenId: string): TokenAlias;
/**
 * Common Constants
 */
export declare function makeDefaultLayoutData(layoutData?: Partial<LayoutData>): LayoutData;
export declare function getDefaultNameForNodeType(nodeType: NodeType["type"]): "Component" | "Text" | "Image" | "Input" | "Icon" | "Stack" | "Slot" | "Popover" | "Loader" | "Table" | "Table Head" | "Table Body" | "Table Row" | "Area Chart" | "Bar Chart" | "Line Chart" | "Pie Chart" | "Calendar";
export {};
//# sourceMappingURL=make-helpers.d.ts.map