import { CenterProps } from "../../Flex/type.mjs";
import "../../Flex/index.mjs";
import { IconProps, IconSizeConfig, IconSizeType, LucideIconProps } from "../../Icon/type.mjs";
import "../../Icon/index.mjs";
import { TooltipProps } from "../Tooltip/type.mjs";
import "../Tooltip/index.mjs";
import { CSSProperties, ReactNode, Ref } from "react";
//#region src/base-ui/ActionIcon/type.d.ts
interface ActionIconSizeConfig extends IconSizeConfig {
  blockSize?: number | string;
  borderRadius?: number | string;
}
type ActionIconSize = number | IconSizeType | ActionIconSizeConfig;
type ActionIconVariant = 'borderless' | 'filled' | 'outlined';
type ActionIconOutdent = boolean | 'start' | 'end';
interface ActionIconClassNames {
  icon?: string;
  root?: string;
}
interface ActionIconStyles {
  icon?: CSSProperties;
  root?: CSSProperties;
}
interface BaseActionIconOwnProps extends Partial<LucideIconProps>, Omit<CenterProps, 'title' | 'children'> {
  active?: boolean;
  classNames?: ActionIconClassNames;
  danger?: boolean;
  disabled?: boolean;
  glass?: boolean;
  icon?: IconProps['icon'] | ReactNode;
  loading?: boolean;
  ref?: Ref<HTMLButtonElement>;
  shadow?: boolean;
  size?: ActionIconSize;
  spin?: boolean;
  styles?: ActionIconStyles;
  title?: TooltipProps['title'];
  tooltipProps?: Omit<TooltipProps, 'children' | 'title'>;
}
type BorderlessOutdentProps<V extends ActionIconVariant> = [V] extends ['borderless'] ? {
  /**
   * Cancels this size's icon inset (half of block − glyph) with a negative
   * margin so a borderless ActionIcon lines up with adjacent copy. `true` /
   * `'start'` outdent the start edge; `'end'` outdents the end edge.
   */
  outdent?: ActionIconOutdent;
  variant?: V;
} : {
  outdent?: never;
  variant?: V;
};
type ActionIconProps<V extends ActionIconVariant = ActionIconVariant> = BaseActionIconOwnProps & BorderlessOutdentProps<V>;
//#endregion
export { ActionIconClassNames, ActionIconOutdent, ActionIconProps, ActionIconSize, ActionIconStyles, ActionIconVariant };
//# sourceMappingURL=type.d.mts.map