import * as React from 'react';
import { GridIconSlotsComponent } from './gridIconSlotsComponent';
/**
 * Grid components React prop interface containing all the overridable components.
 * TODO: Differentiate community and pro interface
 */
export interface GridSlotsComponent extends GridIconSlotsComponent {
    /**
     * The custom Checkbox component used in the grid for both header and cells.
     * @default Checkbox
     */
    BaseCheckbox: React.JSXElementConstructor<any>;
    /**
     * The custom TextField component used in the grid.
     * @default TextField
     */
    BaseTextField: React.JSXElementConstructor<any>;
    /**
     * The custom FormControl component used in the grid.
     * @default FormControl
     */
    BaseFormControl: React.JSXElementConstructor<any>;
    /**
     * The custom Select component used in the grid.
     * @default Select
     */
    BaseSelect: React.JSXElementConstructor<any>;
    /**
     * The custom Switch component used in the grid.
     * @default Switch
     */
    BaseSwitch: React.JSXElementConstructor<any>;
    /**
     * The custom Button component used in the grid.
     * @default Button
     */
    BaseButton: React.JSXElementConstructor<any>;
    /**
     * The custom Tooltip component used in the grid.
     * @default Tooltip
     */
    BaseTooltip: React.JSXElementConstructor<any>;
    /**
     * The custom Popper component used in the grid.
     * @default Popper
     */
    BasePopper: React.JSXElementConstructor<any>;
    /**
     * Component rendered for each cell.
     * @default GridCell
     */
    Cell: React.JSXElementConstructor<any>;
    /**
     * Filter icon component rendered in each column header.
     * @default GridColumnHeaderFilterIconButton
     */
    ColumnHeaderFilterIconButton: React.JSXElementConstructor<any>;
    /**
     * Column menu component rendered by clicking on the 3 dots "kebab" icon in column headers.
     * @default GridColumnMenu
     */
    ColumnMenu: React.JSXElementConstructor<any>;
    /**
     * Error overlay component rendered above the grid when an error is caught.
     * @default ErrorOverlay
     */
    ErrorOverlay: React.JSXElementConstructor<any>;
    /**
     * Footer component rendered at the bottom of the grid viewport.
     * @default GridFooter
     */
    Footer: React.JSXElementConstructor<any>;
    /**
     * Header component rendered above the grid column header bar.
     * Prefer using the `Toolbar` slot. You should never need to use this slot.
     * @default GridHeader
     */
    Header: React.JSXElementConstructor<any>;
    /**
     * Toolbar component rendered inside the Header component.
     * @default null
     */
    Toolbar: React.JSXElementConstructor<any> | null;
    /**
     * PreferencesPanel component rendered inside the Header component.
     * @default GridPreferencesPanel
     */
    PreferencesPanel: React.JSXElementConstructor<any>;
    /**
     * Loading overlay component rendered when the grid is in a loading state.
     * @default GridLoadingOverlay
     */
    LoadingOverlay: React.JSXElementConstructor<any>;
    /**
     * No results overlay component rendered when the grid has no results after filtering.
     * @default GridNoResultsOverlay
     */
    NoResultsOverlay: React.JSXElementConstructor<any>;
    /**
     * No rows overlay component rendered when the grid has no rows.
     * @default GridNoRowsOverlay
     */
    NoRowsOverlay: React.JSXElementConstructor<any>;
    /**
     * Pagination component rendered in the grid footer by default.
     * @default Pagination
     */
    Pagination: React.JSXElementConstructor<any> | null;
    /**
     * Filter panel component rendered when clicking the filter button.
     * @default GridFilterPanel
     */
    FilterPanel: React.JSXElementConstructor<any>;
    /**
     * GridColumns panel component rendered when clicking the columns button.
     * @default GridColumnsPanel
     */
    ColumnsPanel: React.JSXElementConstructor<any>;
    /**
     * Panel component wrapping the filters and columns panels.
     * @default GridPanel
     */
    Panel: React.JSXElementConstructor<any>;
    /**
     * Component rendered for each row.
     * @default GridRow
     */
    Row: React.JSXElementConstructor<any>;
}
