import { PaletteColor, Theme } from '@mui/material';
import { ButtonProps } from '../../../extended/mui/Button/types';
import { ComponentPalletColor, Sizes } from '@m4l/styles';
import { ReactNode } from 'react';
import { ACTIONINTRO_KEY_COMPONENT } from './constants';
import { ActionIntroSlots } from './slots';
import { OverridesStyleRules } from '@mui/material/styles/overrides';
export type ActionIntroVariants = 'contained';
/**
 * Properties of the `ActionIntro` component.
 * The `ActionIntro` component renders a button with an optional icon and label.
 * It supports different sizes, colors, and states such as disabled.
 */
export interface ActionIntroProps extends Omit<ButtonProps, 'variant' | 'color' | 'size'> {
    variant?: ActionIntroVariants;
    color?: ComponentPalletColor;
    dataTestid?: 'string';
    size?: Extract<Sizes, 'small' | 'medium'>;
    startIcon?: ReactNode;
    endIcon?: ReactNode;
}
/**
 * Owner state of the `ActionIntro` used to define internal style and behavior properties.
 */
export interface ActionIntroOwnerState extends Pick<ButtonProps, 'size' | 'variant' | 'color' | 'disabled'> {
    disabled?: boolean;
    paletteColor: PaletteColor;
}
export type ActionIntroSlotsType = keyof typeof ActionIntroSlots;
/**
 * Styles applicable to the `ActionIntro` using themes and custom slots.
 */
export type ActionIntroStyles = Partial<OverridesStyleRules<ActionIntroSlotsType, typeof ACTIONINTRO_KEY_COMPONENT, Theme> | undefined> | undefined;
//# sourceMappingURL=types.d.ts.map