import * as i0 from "@angular/core";
/**
* @internal
* Generates base button classes with style variants
*/
export declare const buttonComponent: (props?: ({
variant?: "primary" | "secondary" | "tertiary" | "accent" | "info" | "success" | "warning" | "error" | "base" | null | undefined;
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
iconPosition?: "left" | "right" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/** Possible button style variants */
export type ButtonVariantProps = 'primary' | 'secondary' | 'tertiary' | 'accent' | 'info' | 'success' | 'warning' | 'error' | 'base' | null | undefined;
/** Possible button size variants */
export type ButtonSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined;
/** Possible icon positions relative to button text */
export type ButtonIconPositionProps = 'left' | 'right' | null | undefined;
/** Configuration object for button styling variants */
export type ButtonProps = {
variant?: ButtonVariantProps;
size?: ButtonSizeProps;
iconPosition?: ButtonIconPositionProps;
};
/** Valid HTML button types */
export type HTMLButtonType = 'button' | 'submit' | 'reset';
/**
* A customizable button component with multiple variants and icon support
*
* @remarks
* Built with Tailwind CSS and class-variance-authority for style management.
* Supports various styling variants, sizes, icon positions, and state modifiers.
*
* @example
* ```html
*
* Submit
*
* ```
*/
export declare class ButtonComponent {
/**
* Button style variant
* @defaultValue 'primary'
*/
variant: import("@angular/core").InputSignal;
/**
* Ghost button style (transparent background)
* @defaultValue false
*/
ghost: import("@angular/core").InputSignal;
/**
* Outline button style (border with transparent fill)
* @defaultValue false
*/
outline: import("@angular/core").InputSignal;
/**
* Link button style (appears as a hyperlink)
* @defaultValue false
*/
link: import("@angular/core").InputSignal;
/**
* Soft button style (muted/subdued color variant)
* @defaultValue false
*/
soft: import("@angular/core").InputSignal;
/**
* Dash button style (dashed border)
* @defaultValue false
*/
dash: import("@angular/core").InputSignal;
/**
* Wide button style (increased horizontal padding)
* @defaultValue false
*/
wide: import("@angular/core").InputSignal;
/**
* Circular button shape
* @defaultValue false
*/
circle: import("@angular/core").InputSignal;
/**
* Square button shape
* @defaultValue false
*/
square: import("@angular/core").InputSignal;
/**
* Glass effect styling
* @defaultValue false
*/
glass: import("@angular/core").InputSignal;
/**
* Full-width button
* @defaultValue false
*/
block: import("@angular/core").InputSignal;
/**
* Show loading spinner
* @defaultValue false
*/
loader: import("@angular/core").InputSignal;
/**
* Button size variant
* @defaultValue 'md'
*/
size: import("@angular/core").InputSignal;
/**
* Add drop shadow
* @defaultValue false
*/
shadow: import("@angular/core").InputSignal;
/**
* Button is focusable
* @defaultValue true
*/
focusable: import("@angular/core").InputSignal;
/**
* Icon name (from icon library)
*/
icon: import("@angular/core").InputSignal;
/**
* Position of icon relative to text
* @defaultValue 'left'
*/
iconPosition: import("@angular/core").InputSignal;
/**
* HTML button type attribute
* @defaultValue 'button'
*/
type: import("@angular/core").InputSignal;
/**
* Disabled state
* @defaultValue false
*/
disabled: import("@angular/core").InputSignal;
/**
* Stop event propagation for activation events
* @defaultValue false
*/
stopPropagation: import("@angular/core").InputSignal;
/**
* Event emitted on click
*/
clicked: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on pointer down
*/
pointerDown: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on Enter keydown
*/
keyDownEnter: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on Space keydown
*/
keyDownSpace: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on activation (click or keyboard)
*/
triggered: import("@angular/core").OutputEmitterRef;
/**
* @internal
* Computed class string for the button container
*/
containerClass: import("@angular/core").Signal;
linkClass: import("@angular/core").Signal;
/**
* @internal
* Handle click events
*/
handleClick(event: MouseEvent): void;
/**
* @internal
* Handle pointer down events
*/
handlePointerDown(event: PointerEvent): void;
/**
* @internal
* Handle Enter keydown events
*/
handleKeyDownEnter(event: Event): void;
/**
* @internal
* Handle Space keydown events
*/
handleKeyDownSpace(event: Event): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}