import { ButtonSize, ButtonEmphasis, ButtonType } from '../../utils/constants'; /** * @slot default - Content of the button. * @slot leading-icon - Icon before the label. * @slot trailing-icon - Icon after the label. */ export declare class NvButton { internals: ElementInternals; el: HTMLNvButtonElement; /****************************************************************************/ /** * Determines how large or small the button appears, allowing for * customization of the button's dimensions to fit different design * specifications and user needs. */ readonly size: `${ButtonSize}`; /** * Adjusts the button's emphasis to make it more or less visually prominent * to users. Use this to draw attention to important actions or reduce focus * on less critical ones */ readonly emphasis: `${ButtonEmphasis}`; /** * Use this prop to highlight the button when it represents the current page * or active selection. This helps users understand their navigation context. */ readonly active: boolean; /** * Applies styling that visually indicates the button represents a dangerous * action. */ readonly danger: boolean; /** * Set this to true to show a spinner on the button, letting users know that * their action is being processed. It helps improve user experience by * indicating ongoing activities. */ loading: boolean; /** * Disables the button, preventing user interaction. */ disabled: boolean; /** * Allows the button to stretch and fill the entire width of its container. */ readonly fluid: boolean; /** * Sets the button type to control its function in forms. Use 'submit' to send * form data, 'reset' to clear the form, or 'button' for a standard button * that doesn't interact with form submission by default. */ readonly type: `${ButtonType}`; /** * Sets the form associated with the button in case the (submit) button is not a child of a form. * Matches the native HTML button 'form' attribute behavior. */ readonly form: string; /** * Use this to make the button skip-able when users navigate with the keyboard. * The button remains clickable but won’t be reached via the Tab key. */ readonly disableTabindex: boolean; /****************************************************************************/ /** * Handles button click events, managing form actions and disabled states. * Prevents default behavior when button is disabled or loading, and * processes form submissions/resets when appropriate. * @param {Event} event - The click event. */ private handleButtonClick; /** * Processes form-related actions by finding the associated form element * and triggering the appropriate action (submit/reset) based on button type. * Falls back to ElementInternals form if no explicit form ID is provided. */ private processFormAction; /****************************************************************************/ handleKeyDown(event: KeyboardEvent): void; /****************************************************************************/ handleLoadingChange(loading: boolean): void; handleDisabledChange(disabled: boolean): void; /****************************************************************************/ componentWillLoad(): void; /****************************************************************************/ render(): any; }