import * as _angular_core from '@angular/core';
/**
* Values accepted by the `ButtonComponent`'s `kind` property.
*
* ```html
*
* ```
*
* ### Import
*
* ```typescript
* import { ButtonKind } from '@talenra/ngx-base/button';
* ```
*
* @see {@link ButtonComponent}
*/
declare const ButtonKind: {
readonly Ghost: "ghost";
readonly Primary: "primary";
readonly Secondary: "secondary";
};
/**
* Type of values accepted by the `ButtonComponent`'s `kind` property.
*
* ### Import
*
* ```typescript
* import { TButtonKind } from '@talenra/ngx-base/button';
* ```
*
* @see {@link ButtonComponent}
*/
type TButtonKind = (typeof ButtonKind)[keyof typeof ButtonKind];
/**
* Values accepted by the `ButtonComponent`'s `size` property.
*
* ```html
*
* ```
*
* ### Import
*
* ```typescript
* import { ButtonSize } from '@talenra/ngx-base/button';
* ```
*
* @see {@link ButtonComponent}
* @see {@link ButtonKind}
*/
declare const ButtonSize: {
readonly S: "s";
readonly M: "m";
};
/**
* Type of values accepted by the `ButtonComponent`'s `size` property.
*
* ### Import
*
* ```typescript
* import { TButtonSize } from '@talenra/ngx-base/button';
* ```
*
* @see {@link ButtonComponent}
* @see {@link ButtonSize}
*/
type TButtonSize = (typeof ButtonSize)[keyof typeof ButtonSize];
/**
* Button in different sizes and style variants.
*
* ```html
*
*
* ```
*
* ## Label
*
* If a Button's width is limited (e.g by CSS or a parent element), the label is truncated as required (using ellipsis).
*
* - **DO** use input property `label` to set the Button's label.
* - **DO NOT** inject text to the button element to set the Button's label.
* - **DO NOT** inject HTML child elements as the result will most probably not comply with the style guide.
*
* ## Kind
*
* The button's kind determines its visual style.
*
* - primary → default, e.g. "submit"
* - secondary → secondary action, e.g. "cancel"
* - ghost → no background, e.g. icon-only buttons
*
* ## Size
*
* The button's size determines its height and font-size.
*
* - m → medium (default)
* - s → small
*
* ## Icon
*
* Buttons can have an optional icon. If used in combination with a label, the icon is always placed on the left side of
* the label.
*
* ```html
*
* ```
*
* To render an icon-only button, just omit the label text. The icon will be rendered in the center of the button.
*
* ```html
*
* ```
*
* ## Waiting (Spinner)
*
* While `waiting` is true, the button's label and icon are hidden and a loading indicator (spinner) is presented to the
* user instead.
*
* ```html
*
*
* ```
*
* ### Import
*
* ```typescript
* import { ButtonComponent } from '@talenra/ngx-base/button';
* ```
*
* ../../#/button
*/
declare class ButtonComponent {
/**
* Prevents the user from interacting with the button: it cannot be pressed or focused.
*
* "Why don't you use the button element's native `disabled` attribute?" — We favour the
* input property as the native attribute can be quirky to set dynamically (cmp. example below).
*
* @example
*
*