import { EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; type MaterialColor = 'primary' | 'accent' | 'warn'; type CustomColor = 'success' | 'caution'; /** * Defines the visual style variant of the button based on Material Design specifications. * - 'button': Basic text button with no elevation * - 'raised': Button with elevation shadow * - 'flat': Button with filled background (default) * - 'stroked': Button with outlined border * - 'icon': Compact icon-only button * - 'fab': Large circular floating action button * - 'mini-fab': Small circular floating action button */ export type ButtonVariant = 'button' | 'raised' | 'flat' | 'stroked' | 'icon' | 'fab' | 'mini-fab'; /** * Color scheme for the button. Can be Material theme colors or custom colors. */ export type ButtonColor = MaterialColor | CustomColor | undefined; /** * HTML button type attribute value. */ export type ButtonType = 'button' | 'submit' | 'reset'; /** * Size variant for textual buttons (button, raised, flat, stroked). * Note: Size does not apply to icon, fab, or mini-fab variants. */ export type ButtonSize = 'normal' | 'mini'; /** * A versatile button component based on Angular Material that supports multiple variants, * colors, states, and accessibility features. * * @example * ```html * * * ``` * * @example Icon button with accessibility label * ```html * * * ``` */ export declare class ButtonComponent { /** * Material Symbol icon name to display in the button. * Uses Material Symbols Outlined font. */ icon: string; /** * Text label to display on the button. * Not displayed on icon-only variants (icon, fab, mini-fab). */ label: string; /** * Visual variant of the button. * @default 'flat' */ variant: ButtonVariant; /** * Color scheme of the button. Supports Material theme colors * (primary, accent, warn) and custom colors (success, caution). * @default 'primary' */ color: ButtonColor; /** * HTML button type attribute. * @default 'button' */ type: ButtonType; /** * Size variant. Only applies to textual buttons (button, raised, flat, stroked). * @default 'normal' */ size: ButtonSize; /** * Whether the button is disabled. Prevents user interaction. * @default false */ disabled: boolean; /** * Whether the button is in loading state. Shows a spinner and prevents interaction. * @default false */ isLoading: boolean; /** * Whether the button should expand to fill its container width. * @default false */ fullWidth: boolean; /** * Accessible label for the button. Required for icon-only buttons * (icon, fab, mini-fab variants) to provide context for screen readers. */ ariaLabel?: string; /** * @internal * Host binding for full-width styling. */ get isFullWidth(): boolean; /** * @internal * Diameter of the loading spinner in pixels. */ spinnerDiameter: number; /** * Event emitted when the button is clicked and not disabled or loading. */ clicked: EventEmitter; /** * Returns the Material color if the current color is a Material theme color, * otherwise returns undefined. * @internal */ get materialColor(): 'primary' | 'accent' | 'warn' | undefined; /** * Returns the CSS class for custom colors, or empty string for Material colors. * @internal */ get customColorClass(): string; /** * Returns the CSS class for mini size on textual variants, or empty string otherwise. * @internal */ get sizeClass(): string; /** * Handles button click events. Only emits the clicked event if the button * is not disabled and not in loading state. * @internal */ handleClick(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_isLoading: unknown; static ngAcceptInputType_fullWidth: unknown; } export {};