import { ComponentNameToClassKey, SxProps, Theme, PopoverProps as MUIPopoverProps } from '@mui/material';
import { PopoverSlots } from './slots';
import { POPOVER_KEY_COMPONENT } from './constants';
import { Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../../../@types/augmentations';
export interface PopoverProps extends Omit<MUIPopoverProps, 'sx'> {
    arrowType?: ArrowType;
    sx?: SxProps<Theme> | Partial<M4LOverridesStyleRules<string, ComponentNameToClassKey, Theme>>;
    size?: Sizes;
    /**
     * Complements the generated `data-testid` with a unique instance suffix.
     */
    instaceDataTestId?: string;
}
export type ArrowType = 'no-arrow' | 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'left-top' | 'left-center' | 'left-bottom' | 'right-top' | 'right-center' | 'right-bottom';
export type ArrowStyleProps = {
    arrowType: ArrowType;
};
export interface PopoverPositionState {
    left: string;
    top: string;
    transformOrigin: string;
    visibility: 'hidden' | 'visible';
}
export type PopoverSlotsType = keyof typeof PopoverSlots;
export type PopoverOwnerState = {
    position: PopoverPositionState;
};
export type PopoverStyles = M4LOverridesStyleRules<PopoverSlotsType, typeof POPOVER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map