import { Maybe } from '@m4l/core';
import { DateFormatterRootStyled } from './slots/DateFormatterSlots';
import { DATE_FORMATTER_KEY_COMPONENT } from './constants';
import { OverridesStyleRules } from '@mui/material/styles/overrides';
import { Theme } from '@mui/material';
import { DateFormatterSlots } from './slots/DateFormatterEnum';
/**
 * Maps to the keys in `DateFormatterSlots`, defining slot-specific styling or customization.
 */
export type DateFormatter = keyof typeof DateFormatterSlots;
/**
 * Defines the presentation type for the DateFormatter component.
 */
export type PresentationType = 'date' | 'datetime' | 'time';
/**
 * Value that can be formatted by the DateFormatter component.
 */
export type valueType = Date | string | number;
export interface DateFormatterProps<T extends React.ElementType = typeof DateFormatterRootStyled> {
    Component?: T;
    presentationType: PresentationType;
    format?: string;
    value: Maybe<Date | string | number>;
    dataTestId?: string;
    className?: string;
    /**
     * Props for the custom component.
     */
    componentProps?: React.ComponentPropsWithoutRef<T>;
}
/**
 * Styles for customizing the `BooleanFormatter` component.
 *
 * This type allows partial overriding of the default styles through Material-UI's `OverridesStyleRules`.
 * It integrates with the Material-UI `Theme` to ensure consistent theming.
 */
export type DateFormatterStyles = OverridesStyleRules<DateFormatter, typeof DATE_FORMATTER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map