///
import * as React from 'react';
import { LayoutStyleProperties } from './styleTransformers/transformLayoutStyleProperties';
import { YogaStyleProperties } from './yoga/YogaStyleProperties';
import { TextStyleProperties } from './styleTransformers/transformTextStyleProperties';
import { BlendStyleProperties } from './styleTransformers/transformBlendProperties';
import { GeometryStyleProperties } from './styleTransformers/transformGeometryStyleProperties';
import { BorderStyleProperties } from './styleTransformers/transformBorderProperties';
export declare type Color = string;
export declare type StyleOf = Partial | Partial[];
export interface BaseNodeProps {
name?: string;
pluginData?: {
[key: string]: string;
};
sharedPluginData?: {
[namespace: string]: {
[key: string]: string;
};
};
onNodeId?: (nodeId: string) => void;
}
export interface LayoutProps {
relativeTransform?: Transform;
x?: number;
y?: number;
rotation?: number;
width?: number;
height?: number;
isWithoutConstraints?: boolean;
layoutAlign?: 'MIN' | 'CENTER' | 'MAX' | 'STRETCH' | 'INHERIT';
layoutGrow?: number;
}
export interface ChildrenProps {
children?: React.ReactNode;
}
export interface GeometryProps {
fills?: ReadonlyArray | symbol;
strokes?: ReadonlyArray;
strokeWeight?: number | PluginAPI['mixed'];
strokeAlign?: 'CENTER' | 'INSIDE' | 'OUTSIDE';
strokeCap?: StrokeCap | symbol;
strokeJoin?: StrokeJoin | symbol;
dashPattern?: ReadonlyArray;
fillStyleId?: string | symbol;
strokeStyleId?: string;
}
export interface FrameProps {
backgrounds?: ReadonlyArray;
fillStyleId?: string | symbol;
}
export interface CornerProps {
cornerRadius?: number | symbol;
cornerSmoothing?: number;
}
export interface BorderProps {
topLeftRadius?: number;
topRightRadius?: number;
bottomLeftRadius?: number;
bottomRightRadius?: number;
}
export interface ExportProps {
exportSettings?: ReadonlyArray;
exportAsyncSettings?: ExportSettings;
exportAsyncCallback?: (result: Uint8Array) => any;
}
export interface BlendProps {
opacity?: number;
blendMode?: 'PASS_THROUGH' | BlendMode;
isMask?: boolean;
effects?: ReadonlyArray;
effectStyleId?: string;
}
export interface TextNodeProps {
characters?: string;
textAlignHorizontal?: 'LEFT' | 'CENTER' | 'RIGHT' | 'JUSTIFIED';
textAlignVertical?: 'TOP' | 'CENTER' | 'BOTTOM';
textAutoResize?: 'NONE' | 'WIDTH_AND_HEIGHT' | 'HEIGHT';
paragraphIndent?: number;
paragraphSpacing?: number;
autoRename?: boolean;
fontSize?: number | symbol;
fontName?: FontName;
textCase?: TextCase | symbol;
textDecoration?: TextDecoration | symbol;
letterSpacing?: LetterSpacing | symbol;
lineHeight?: LineHeight | symbol;
textStyleId?: string;
hyperlink?: HyperlinkTarget;
}
export interface VectorNodeProps {
vectorPaths?: VectorPaths;
vectorNetwork?: VectorNetwork;
handleMirroring?: HandleMirroring | symbol;
}
export interface StarNodeProps {
pointCount?: number;
innerRadius?: number;
}
export interface InstanceItemProps {
node?: any;
preventResizing?: boolean;
}
export interface SceneNodeProps {
visible?: boolean;
locked?: boolean;
}
export interface DefaultShapeProps extends BaseNodeProps, LayoutProps, ConstraintsProps, GeometryProps, ExportProps, BlendProps, SceneNodeProps {
}
export interface DefaultContainerProps extends BaseNodeProps, ChildrenProps, LayoutProps, ConstraintsProps, ExportProps, BlendProps, FrameProps, SceneNodeProps {
}
export declare type CommonStyle = LayoutStyleProperties & YogaStyleProperties & TextStyleProperties & BlendStyleProperties & GeometryStyleProperties & BorderStyleProperties;
export interface SelectionEventProps {
onSelectionEnter?: (() => void) | void;
onSelectionLeave?: (() => void) | void;
}
export interface ChangePageEventProps {
onCurrentChange?: (isCurrent: boolean) => void;
}
export interface ConstraintsProps {
constraints?: Constraints;
}
export interface AutoLayoutProps {
layoutMode?: 'NONE' | 'HORIZONTAL' | 'VERTICAL';
primaryAxisSizingMode?: 'FIXED' | 'AUTO';
counterAxisSizingMode?: 'FIXED' | 'AUTO';
primaryAxisAlignItems?: 'MIN' | 'MAX' | 'CENTER' | 'SPACE_BETWEEN';
counterAxisAlignItems?: 'MIN' | 'MAX' | 'CENTER';
paddingLeft?: number;
paddingRight?: number;
paddingTop?: number;
paddingBottom?: number;
horizontalPadding?: number;
verticalPadding?: number;
itemSpacing?: number;
}
export interface FrameSpecificProps {
clipsContent?: boolean;
guides?: ReadonlyArray;
layoutGrids?: ReadonlyArray;
gridStyleId?: string;
}
export interface CommonStyleProps {
id?: string;
name?: string;
description?: string;
}
interface DocumentationLink {
readonly uri: string;
}
export interface PublishableProps {
description?: string;
documentationLinks?: ReadonlyArray;
}
export interface HyperlinkTarget {
type: 'URL' | 'NODE';
value: string;
}
export {};