
import { CubeButtonProps } from "../Button/Button.js";
import { CubeMenuProps } from "../Menu/Menu.js";
import { CubeCollectionItemProps } from "../../CollectionItem.js";
import { BaseProps, ContainerStyleProps, Styles } from "@tenphi/tasty";
import * as react from "react";
import { ReactNode } from "react";

//#region src/components/actions/ButtonSplit/ButtonSplit.d.ts
interface ButtonSplitAction extends Omit<CubeCollectionItemProps<object>, 'children' | 'onAction' | 'wrapper'> {
  key: string;
  label: ReactNode;
}
interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {
  /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */
  actions?: ButtonSplitAction[];
  /** Currently selected action key (controlled). */
  actionKey?: string;
  /** Initially selected action key (uncontrolled). */
  defaultActionKey?: string;
  /** Called when the action button is pressed. Receives the current action key. */
  onAction?: (key: string) => void;
  /** Called when the selected action changes via the trigger menu. */
  onActionChange?: (key: string) => void;
  /** Button type applied to both action and trigger buttons in strict mode. */
  type?: CubeButtonProps['type'];
  /** Button theme applied to both action and trigger buttons in strict mode. */
  theme?: CubeButtonProps['theme'];
  /** Button size applied to both action and trigger buttons in strict mode. */
  size?: CubeButtonProps['size'];
  /** Disables both buttons in strict mode. */
  isDisabled?: boolean;
  /** Additional props for the action button in strict mode. */
  actionProps?: Partial<CubeButtonProps>;
  /** Additional props for the trigger button in strict mode. */
  triggerProps?: Partial<CubeButtonProps>;
  /** Additional props for the dropdown menu in strict mode. */
  menuProps?: Partial<CubeMenuProps<object>>;
  /** Custom styles for the wrapper element. */
  styles?: Styles;
  /** Custom mode: render arbitrary Button children. */
  children?: ReactNode;
}
declare const ButtonSplit: react.ForwardRefExoticComponent<CubeButtonSplitProps & react.RefAttributes<HTMLDivElement>>;
//#endregion
export { ButtonSplit, ButtonSplitAction, CubeButtonSplitProps };
//# sourceMappingURL=ButtonSplit.d.ts.map