import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; import type { TextColor } from "./text_ink"; interface LabelBase extends StyleProps { children?: React.ReactNode; /** Ellipsis on the last line. */ lines?: number; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** `sm` muted medium: quiet by ink, not size (`hierarchy.md` § SMALL is not QUIET). */ interface LabelValueProps extends LabelBase { over?: "value"; /** * A verdict's ink is its meaning ("Mismatch" in danger); rung and weight stay. Never emphasis. */ color?: TextColor; /** A right-aligned label is still a label. */ align?: "left" | "center" | "right"; size?: never; } /** `sm`–`md` medium, in the page's ink. */ interface LabelBlockProps extends LabelBase { over: "block"; /** * `md` where it titles a run of `sm` value labels, or they read as peers. Never larger, or it * competes with the section heading. */ size?: "sm" | "md"; color?: never; align?: never; } export type LabelProps = LabelValueProps | LabelBlockProps; /** * THE SMALL WORD THAT NAMES SOMETHING ELSE. `value` (default) sits by a value, receding in ink at * the reading rung, since 12px crowds stacked diacritics. `block` titles a block in the page's ink, * at `md` over value labels. No `transform` (all-caps shouts and templates a surface) and no * `weight` (semibold is a heading). The `Text` is the root, wearing `lotics-label` beside * `lotics-text`. */ export declare function Label(props: LabelProps): React.JSX.Element; export {};