import type React from "react";
import type { Icon } from "../icon.js";
import type { BadgeColor } from "./badge.js";
/**
* A component for displaying tabular data.
*
* @example
*
* import { Table, Link, Button } from "attio/client"
*
* export function MyDialog() {
* return (
*
*
* Name
* Avatar
* Portfolio
* Role
* Status
* Actions
*
*
*
* John Doe
*
*
*
*
* John's Portfolio
*
*
* Admin
*
*
* Active
*
*
*
*
*
*
* )
* }
*/
export declare const Table: ((props: {
/**
* An optional label of the table.
*/
label?: string;
/**
* The table contents. Must contain exactly one Table.Header and one Table.Body.
*/
children: React.ReactNode;
}) => React.JSX.Element) & {
/**
* The table header row. This component can only be a direct child of a Table component.
* It must contain only Table.HeaderCell components.
*/
Header: (props: {
/**
* The header cells. Must contain only Table.HeaderCell components.
*/
children: React.ReactNode;
}) => React.JSX.Element;
/**
* A header cell. This component can only be a direct child of a Table.Header component.
*/
HeaderCell: (props: {
/**
* An optional icon for the header cell.
*/
icon?: Icon;
/**
* The text content of the header cell.
*/
children: string;
}) => React.JSX.Element;
/**
* The table body. This component can only be a direct child of a Table component.
* It must contain only Table.Row components.
*/
Body: (props: {
/**
* The table rows. Must contain only Table.Row components.
*/
children: React.ReactNode;
}) => React.JSX.Element;
/**
* A table row. This component can only be a direct child of a Table.Body component.
* It must contain the same number of Table.Cell components as there are Table.HeaderCell components.
*/
Row: (props: {
/**
* The table cells. Must contain only Table.Cell components.
*/
children: React.ReactNode;
}) => React.JSX.Element;
/**
* A table cell. This component can only be a direct child of a Table.Row component.
* It may contain text, Link components, Table.Cell.Badge components, Table.Cell.Avatar
* components, or Button components. If a cell contains buttons, it must only contain buttons.
*/
Cell: ((props: {
/**
* The content of the table cell, either text (with links), badges, avatars, or buttons.
*/
children: React.ReactNode;
}) => React.JSX.Element) & {
/**
* A badge component for use inside a Table.Cell. If a cell contains badges, it must only contain badges.
*/
Badge: (props: {
/**
* The text content of the badge. Only text children are allowed.
*/
children: string;
/**
* The color of the badge.
*/
color: BadgeColor;
}) => React.JSX.Element;
/**
* An avatar component for use inside a Table.Cell. If a cell contains avatars, it must only contain avatars.
*/
Avatar: (props: {
/**
* The name of the person or entity represented by the avatar.
*/
name: string;
/**
* The URL of the avatar image.
*/
src: string | null | undefined;
}) => React.JSX.Element;
};
};
//# sourceMappingURL=table.d.ts.map