import * as React from 'react';
import type { GridRenderEditCellParams, ValueOptions, GridSlotProps, BaseAutocompletePropsOverrides } from '@mui/x-data-grid';
import type { AutocompleteProps } from '@mui/x-data-grid/internals';
export interface GridEditMultiSelectCellProps<V extends ValueOptions = ValueOptions> extends GridRenderEditCellParams {
  /**
   * Callback called when the value is changed by the user.
   * @param {React.SyntheticEvent} event The event source of the callback.
   * @param {any[]} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
   * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
   */
  onValueChange?: (event: React.SyntheticEvent, newValue: any[]) => Promise<void> | void;
  /**
   * Props passed to internal components.
   */
  slotProps?: {
    /**
     * Props passed to the root element.
     */
    root?: React.HTMLAttributes<HTMLDivElement>;
    /**
     * Props passed to the chip elements.
     * Can be an object or a function that receives the chip value and index.
     */
    chip?: Partial<GridSlotProps['baseChip']> | ((value: V, index: number) => Partial<GridSlotProps['baseChip']>);
    /**
     * Props passed to the popper element.
     */
    popper?: Partial<GridSlotProps['basePopper']>;
    /**
     * Props passed to the popper content element.
     */
    popperContent?: React.HTMLAttributes<HTMLDivElement>;
    /**
     * Props passed to the autocomplete element.
     */
    autocomplete?: Partial<AutocompleteProps<V, true, false, false>> & Partial<BaseAutocompletePropsOverrides>;
  };
}
declare function GridEditMultiSelectCell<V extends ValueOptions = ValueOptions>(props: GridEditMultiSelectCellProps<V>): React.JSX.Element | null;
declare namespace GridEditMultiSelectCell {
  var propTypes: any;
}
export { GridEditMultiSelectCell };
export declare const renderEditMultiSelectCell: (params: GridEditMultiSelectCellProps) => React.JSX.Element;