import type { ButtonPureSize, ButtonPureAlignLabel, ButtonPureType, ButtonPureColor } from "./types";
import type { Theme } from "../../utils/styles";
/**
* @component diwa-button-pure
*
* A transparent, text+icon action button — no background or border.
* Mirrors the PDS `p-button-pure` component.
*
* Default layout: [icon] [label] (alignLabel="end")
* Reversed layout: [label] [icon] (alignLabel="start")
* Stretched layout: [icon] ····· [label] (stretch + alignLabel="end")
*
* Usage:
* Read more
* Back
*
*
* @slot default — Button label text
*/
export declare class DiwaButtonPure {
host: HTMLDiwaButtonPureElement;
/** Per-component theme override (light / dark). */
theme: Theme;
/** Text size tier. Controls both font-size and icon size. */
size: ButtonPureSize;
/**
* Lucide icon name in kebab-case (e.g. `"arrow-right"`, `"star"`), or `"none"`
* to render with no icon. Defaults to `"arrow-right"` — matching PDS.
*/
icon: string;
/** Disabled state. Blocks all pointer and keyboard interaction. */
disabled: boolean;
/**
* Loading state. Replaces the icon with a spinner, blocks interaction,
* and announces aria-busy to screen readers.
*/
loading: boolean;
/**
* When `true`, the label slot is visually hidden (icon-only mode).
* Always pair with the `label` prop for screen-reader accessible name.
*/
hideLabel: boolean;
/** Foreground colour alias for text and icon. Reflected as `[color]` for CSS selectors. */
color: ButtonPureColor;
/** Forces the button into its active/pressed visual state. */
active: boolean;
/** Adds an underline decoration to the label text. */
underline: boolean;
/**
* Controls which side the label appears on relative to the icon.
* - `"end"` (default): [icon] [label]
* - `"start"`: [label] [icon]
*/
alignLabel: ButtonPureAlignLabel;
/**
* When `true`, the button stretches to fill its container and the space
* between icon and label expands to fill remaining width.
*/
stretch: boolean;
/** Native button type. Only applies when rendered as `