import { ComponentPalletColor } from '@m4l/styles';
import { PopperProps as MUIPopperProps, PaletteColor, Theme } from '@mui/material';
import { PopperChildrenProps } from '@mui/material/Popper/BasePopper.types';
import { OverridesStyleRules } from '@mui/material/styles/overrides';
import { ReactNode } from 'react';
import { POPPER_KEY_COMPONENT } from './constants';
import { PopperSlots } from './slots';
/**
 * Props for the `Popper` component.
 */
export interface PopperProps extends Omit<MUIPopperProps, 'color'> {
    color?: Extract<ComponentPalletColor, 'default'> | undefined;
    variant?: 'standard';
    initialPlacement?: MUIPopperProps['placement'];
    dataTestid?: string;
    children?: ReactNode | ((props: PopperChildrenProps) => ReactNode);
    arrow?: boolean;
}
/**
 * Owner state of the `Popper` used to define internal style and behavior properties.
 */
export interface PopperOwnerState extends Pick<PopperProps, 'placement'> {
    popperColor: PopperProps['color'];
    arrow: boolean;
    paletteColor: PaletteColor;
    variant: PopperProps['variant'];
}
/**
 * Defines the types of Slots available for the `Popper`.
 */
export type PopperSlotsType = keyof typeof PopperSlots;
/**
 * Styles applicable to the `Popper` using themes and custom slots.
 */
export type PopperStyles = OverridesStyleRules<PopperSlotsType, typeof POPPER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map