import { ComputedNodeStyle, MarkdownOrString, NodeId } from '@likec4/core';
import { Color } from '@likec4/core/types';
import { CSSProperties, DetailedHTMLProps, HTMLAttributes } from 'react';
type RequiredData = {
id: NodeId;
title: string;
technology?: string | null | undefined;
color: Color;
style: ComputedNodeStyle;
description?: MarkdownOrString | null | undefined;
icon?: string | null;
};
export type ElementDataProps = {
data: RequiredData;
};
type IconProps = {
data: {
id: string;
title: string;
icon?: string | null | undefined;
};
className?: string;
style?: CSSProperties;
};
type SlotProps = {
data: RequiredData;
className?: string;
style?: CSSProperties;
[key: `data-${string}`]: string;
};
/**
* Renders an element title, technology, description, and icon.
*
* @example
* ```tsx
*
* ```
* or
* ```tsx
*
*
*
*
*
*
*
*
* ```
*/
export declare function ElementData({ data }: ElementDataProps): import("react/jsx-runtime").JSX.Element;
export declare namespace ElementData {
var Root: import("react").ForwardRefExoticComponent & ElementDataProps & import("react").RefAttributes>;
var Icon: ({ data, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
var Content: import("react").ForwardRefExoticComponent, HTMLDivElement>, "ref"> & import("react").RefAttributes>;
var Title: import("react").ForwardRefExoticComponent>;
var Technology: import("react").ForwardRefExoticComponent<((import("type-fest/source/merge-exclusive").Without & {
children?: import("react").ReactNode | undefined;
}) | (import("type-fest/source/merge-exclusive").Without<{
children?: import("react").ReactNode | undefined;
}, SlotProps> & SlotProps)) & import("react").RefAttributes>;
var Description: import("react").ForwardRefExoticComponent>;
}
export {};