import { PillColor, TypographyProps } from '@procore/core-react';
import React from 'react';
import { ColumnDefinition, GranularRequired } from '../types';
import { DataTableCellEditorProps, DataTableCellRendererProps } from './DataTableCell';
export interface PillCellRendererParams<TValue> {
    getColor: (item: TValue) => PillColor;
    typographyProps?: TypographyProps;
}
export type PillCellColumnDefinition<TValue = any, TFilterOption = any, TFilterValue = number | string> = GranularRequired<ColumnDefinition<TValue, 'pillCellRenderer', PillCellRendererParams<TValue>, 'pillSelectCellEditor', PillCellEditorParams<TValue>, TFilterOption, TFilterValue>, 'cellRendererParams'>;
export interface PillCellRendererProps<TValue = any> extends DataTableCellRendererProps<TValue, PillCellColumnDefinition<TValue>> {
}
export declare const PillCellRenderer: React.FunctionComponent<PillCellRendererProps>;
export interface PillCellEditorParams<TValue> {
    clearable?: boolean;
    getId?: (item: TValue) => number | string;
    getColor?: (item: TValue) => PillColor;
    placeholder?: string;
    selectOptions: TValue[] | ((rowData: Record<string, any>) => TValue[]) | ((rowData: Record<string, any>) => Promise<TValue[]>);
}
export interface PillSelectCellEditorProps<TValue = any> extends DataTableCellEditorProps<TValue, PillCellColumnDefinition<TValue>> {
}
export declare const PillSelectCellEditor: React.ForwardRefExoticComponent<Pick<PillSelectCellEditorProps<any>, "value" | "field" | "rowHeight" | "data" | "rowIndex" | "rowPinned" | "columnDefinition" | "stopEditing" | "setDataValue" | "isGroup" | "parentData" | "parentId" | "tableApi"> & React.RefAttributes<HTMLDivElement>>;
