import React from "react";
import { AlignmentData, BackgroundData, BorderData, ColorValueOrAlias, CornerData, FontValueOrAlias, InteractionType, LayoutData, NodeId, PaddingData, SelectorId, ShadowData, SizeDataWithParentDirection } from "../../data/types";
export type PolymorphicAs = keyof JSX.IntrinsicElements | React.ComponentType<any>;
export interface HackyCSSFlags {
    isRoot: boolean;
    isButton: boolean;
    isRadioGroupItem: boolean;
    isInput: boolean;
}
export interface PrimitiveBaseProps<T> {
    "data-node-id"?: NodeId;
    "data-selector-id"?: SelectorId;
    "data-interaction-type"?: InteractionType;
    innerRef?: React.Ref<T>;
    additionalCSS?: string;
    hackyCSSFlags: HackyCSSFlags;
    as?: PolymorphicAs;
}
export interface PrimitiveWithSizing {
    sizeDataWithDirection: SizeDataWithParentDirection;
}
export interface PrimitiveWithChildrenProps {
    direction: LayoutData["direction"];
    spacing: LayoutData["spacing"];
    alignment: AlignmentData;
}
export interface PrimitiveWithStyling {
    padding: PaddingData;
    background: BackgroundData | null;
    border: BorderData | null;
    corner: CornerData | null;
    shadow: ShadowData | null;
}
export interface PrimitiveWithFont {
    font: FontValueOrAlias;
    fontColor: ColorValueOrAlias;
}
//# sourceMappingURL=types.d.ts.map