import { ReactElement } from 'react';
import { M4LOverridesStyleRules } from '../../../@types/augmentations';
import { Theme } from '@mui/material';
import { NESTED_FORMATTER_KEY_COMPONENT } from './constants';
import { NestedFormatterSlots } from './slots/NestedFormatterEnum';
import { RowHeightVariants } from '../../datagrids/types';
/**
 * Props for the presentational NestedFormatter component.
 * Receives already-resolved values (no row or DeepKeyOf).
 *
 * **Rule:** Only one of `imageUrl` or `icon` may be provided, never both.
 */
export interface NestedFormatterProps {
    /**
     * Text value to display.
     */
    value: string;
    /**
     * Default value when value is empty (e.g. '-').
     * The parent may already apply this before passing value.
     */
    defaultValue?: string;
    /**
     * Image URL for the start adornment. When set, only the image is shown (no icon).
     * Mutually exclusive with `icon`.
     */
    imageUrl?: string;
    /**
     * Optional image width (e.g. from DataGrid cards view). When both width and height are set, same behavior as ImageFormatter.
     */
    imageWidth?: number;
    /**
     * Optional image height (e.g. from DataGrid cards view). When both width and height are set, same behavior as ImageFormatter.
     */
    imageHeight?: number;
    /**
     * Icon for the start adornment: string (URL/name for Icon) or ReactElement (custom component).
     * When set, only the icon is shown (no image). Mutually exclusive with `imageUrl`.
     */
    icon?: string | ReactElement;
    /**
     * Color for the icon (theme key or CSS color). Only used when `icon` is set.
     */
    iconColor?: string;
    /**
     * When set, the content is clickable and executes this handler (no navigation).
     * Rendered with link-like styles (underline, primary color, pointer cursor).
     */
    onLink?: () => void;
    /**
     * Wrapper component for the value. Defaults to React.Fragment.
     */
    Component?: React.ElementType;
    /**
     * Controls how many text lines are visible before ellipsis based on DataGrid density.
     * - 'compact'      -> 1 line
     * - 'standard'     -> 2 lines
     * - 'confortable'  -> 3 lines
     */
    rowHeightVariant?: RowHeightVariants;
}
/**
 * Slot names type for NestedFormatter.
 */
export type NestedFormatterSlotsType = keyof typeof NestedFormatterSlots;
/**
 * Styles applicable to NestedFormatter slots.
 */
export type NestedFormatterStyles = M4LOverridesStyleRules<NestedFormatterSlotsType, typeof NESTED_FORMATTER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map