export interface CopyButtonProps { /** The text placed on the clipboard. Empty disables the button (see below). */ value: string; /** Names WHAT is copied — "Copy phone number", "Sao chép số điện thoại". This * is the accessible name, so give it whenever the glyph alone leaves the * target ambiguous, which is any row carrying more than one value. Defaults to * the pack's bare verb. */ label?: string; /** `sm` (the default, 24px) sits beside body/sm text — a value in a register * cell or a detail row — because 24 IS the `sm` line box, so the control adds * nothing to the line's height. `md` (28px) for a toolbar. * * On a SMALLER line (an `xs` supporting line, 18px) there is no matching rung, * and dropping `sm` on it makes the row 24 — the text then sits 3px lower than * the same supporting line one column over. Pin that row's `height` to the * text's leading and let this overflow it; see `docs/composition.md` * §"The register's own craft" for the rule and `tpl_item_list` for the worked line. */ size?: "sm" | "md"; disabled?: boolean; testID?: string; } /** * THE copy control — a verb about a VALUE, so it rides the value it copies * rather than a trailing column (see `docs/composition.md` § A VERB GOES WHERE * ITS EFFECT LANDS: a reserved column is paid by every row for the benefit of * one, and a row carrying two values gives that column nothing to name). * * It owns the whole gesture: the clipboard write, and what came of it — the * glyph flips to a check and the tooltip to the pack's "Copied" for ~2s. The * confirmation follows a REAL write; an unreachable clipboard — a non-secure * origin, a denied permission — flips the glyph to the alert mark and says so in * the pack's words instead, rather than claiming a copy the user cannot paste or * leaving the browser to log a rejection nobody reads. * * The FAILED state is the one that also changes the announced name. A name that * moves under a screen-reader user normally reads as a different control, which * is why the confirmation leaves it put — but the check is a channel only the * eye has, and nothing else would tell a reader who cannot see the glyph that * there is nothing on their clipboard. * * **Render it unconditionally and let it disable itself.** An empty `value` * disables the button, which is the same rule an `Inline*` editor's `actions` * slot follows: a control that appears once a value is non-empty changes the * cell's width as the value arrives, and a register whose columns shift as rows * load is worse than a dimmed glyph. * * Nested inside a `PressableRow`/`TableRow` it claims its own press — the row * does not also open. */ export declare function CopyButton(props: CopyButtonProps): import("react").JSX.Element;