import { ReactElement } from 'react';
import { CellEditorCommon } from '../GridCell';
import { GridBaseRow } from '../types';
export interface MultiSelectGridOption {
    value: any;
    label?: string | ReactElement;
    checked?: boolean | 'partial';
    canSelectPartial?: boolean;
    warning?: string | undefined;
}
export interface GridFormMultiSelectGridSaveProps<TData extends GridBaseRow> {
    selectedRows: TData[];
    addValues: any[];
    removeValues: any[];
}
export interface GridFormMultiSelectGridProps<TData extends GridBaseRow> extends CellEditorCommon {
    className?: string | undefined;
    noOptionsMessage?: string;
    onSave?: (props: GridFormMultiSelectGridSaveProps<TData>) => Promise<boolean>;
    options: MultiSelectGridOption[] | ((selectedRows: TData[]) => Promise<MultiSelectGridOption[]> | MultiSelectGridOption[]);
    invalid?: (props: GridFormMultiSelectGridSaveProps<TData>) => boolean;
    maxRowCount?: number;
}
export declare const GridFormMultiSelectGrid: <TData extends GridBaseRow>(props: GridFormMultiSelectGridProps<TData>) => ReactElement;
