
import { CubeTooltipProviderProps } from "../../overlays/Tooltip/TooltipProvider.js";
import { DynamicIcon } from "../../../utils/react/resolveIcon.js";
import "../../../utils/react/index.js";
import { CubeActionProps } from "../Action/Action.js";
import { Mods, Styles } from "@tenphi/tasty";
import "react";
import { OverlayProps } from "react-aria";

//#region src/components/actions/Button/Button.d.ts
/** Known modifiers for Button component */
type ButtonMods = Mods<{
  pressed?: boolean;
  loading?: boolean;
  selected?: boolean;
  'has-icons'?: boolean;
  'has-icon'?: boolean;
  'has-right-icon'?: boolean;
  'single-icon'?: boolean;
  'text-only'?: boolean;
  'raw-children'?: boolean;
}>;
interface CubeButtonProps extends CubeActionProps {
  icon?: DynamicIcon<ButtonMods>;
  rightIcon?: DynamicIcon<ButtonMods>;
  isLoading?: boolean;
  isSelected?: boolean;
  type?: 'primary' | 'danger' | 'link' | 'clear' | 'outline' | 'outline-2' | (string & {});
  size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number | (string & {});
  /**
   * Tooltip content and configuration:
   * - string: simple tooltip text
   * - true: auto tooltip on overflow (shows children as tooltip when truncated)
   * - object: advanced configuration with optional auto property
   */
  tooltip?: string | boolean | (Omit<CubeTooltipProviderProps, 'children'> & {
    auto?: boolean;
  });
  /**
   * @private
   * Default tooltip placement for the button.
   * @default "top"
   */
  defaultTooltipPlacement?: OverlayProps['placement'];
}
type ButtonVariant = 'default.primary' | 'default.outline' | 'default.outline-2' | 'default.clear' | 'default.link' | 'danger.primary' | 'danger.outline' | 'danger.outline-2' | 'danger.clear' | 'danger.link' | 'success.primary' | 'success.outline' | 'success.outline-2' | 'success.clear' | 'success.link' | 'warning.primary' | 'warning.outline' | 'warning.outline-2' | 'warning.clear' | 'warning.link' | 'note.primary' | 'note.outline' | 'note.outline-2' | 'note.clear' | 'note.link' | 'special.primary' | 'special.outline' | 'special.clear' | 'special.link';
declare const DEFAULT_BUTTON_STYLES: Styles;
//#endregion
export { ButtonMods, ButtonVariant, CubeButtonProps, DEFAULT_BUTTON_STYLES };
//# sourceMappingURL=Button.d.ts.map