import type React from 'react';
import type { DateSelectProps } from '../DateSelect';
import type { InputProps } from '../Input';
import type { SelectProps } from '../Select';
import type { Props, Size } from '../_utils/types';
export declare type InputCellSize = Extract<Size, 'block' | 'lg' | 'md' | 'sm' | 'xl' | 'xs'>;
declare type TableVariant = '' | 'fixed';
export declare type TableColumnSortOrder = 'asc' | 'desc' | '';
export declare type TableCellVariant = '' | 'asc' | 'desc' | 'snugfit';
export interface BodyCellProps extends Props {
    /**
     * Shrink the cell around the contents
     * @since 10.19.0
     */
    snugfit?: boolean;
    /**
     * The table body cell variant
     * @since 10.19.0
     * @deprecated Please use `sortOrder` prop instead of `esc/desc` variants, and `snugfit` prop instead of `snugfit` variant
     * @deprecatedSince 11.15.1
     */
    variant?: TableCellVariant;
}
export interface BodyProps extends Props {
}
export interface BodyRowProps extends Props {
    /**
     * Sets row text color to red to signify overdue items
     * @since 10.19.0
     */
    overdue?: boolean;
}
export interface CaratProps {
    /**
     * Whether or not the carat is rotated
     * @since 10.19.0
     */
    expanded?: boolean;
    /**
     * Callback to fire when clicked
     * @since 10.19.0
     */
    onClick?: React.EventHandler<any>;
}
export interface ContainerProps {
    /**
     * @since 10.19.0
     */
    children?: React.ReactNode;
    /**
     * Adjust the container to support a table shelf
     * @default false
     * @since 10.19.0
     * */
    shelf?: boolean;
}
export interface CurrencyCellProps extends Props {
}
export interface GroupProps extends Props {
    /**
     * Number of columns in table
     * @since 10.19.0
     */
    colSpan?: number;
    /**
     * Determines indentation of the group and content
     * @since 10.19.0
     */
    depth?: number;
}
export interface GroupTitleProps extends Props {
}
export interface HeaderCellProps extends BodyCellProps {
    /**
     * Is this the column sortable
     * @since 10.19.0
     * @deprecated Please use `sortOrder` prop instead
     * @deprecatedSince 11.15.1
     */
    sortable?: boolean;
    /**
     * Column sorting order
     * @since 11.15.1
     */
    sortOrder?: TableColumnSortOrder;
    /**
     * Column sorting order change callback.
     * Loops over from "asc" to "desc" to "", set should be assigned to `sortOrder` prop.
     * @since 11.15.1
     */
    onSortOrderChange?: (nextSortOrder: TableColumnSortOrder) => void;
}
export interface HeaderProps extends Props {
}
export interface HeaderRowProps extends Props {
}
export interface IconCellProps extends Props {
}
export interface InputCellProps extends Omit<InputProps, 'size'> {
    /**
     * Message to be displayed below the input during an error
     * @since 10.19.0
     */
    errorMessage?: string;
    /**
     * Triggers the spinner for processing inline editable content
     * @default false
     * @since 10.19.0
     */
    processing?: boolean;
    /**
     * The size of the input cell and corresponding error message
     * @default 'block'
     * @since 10.19.0
     */
    size?: InputCellSize;
}
export interface LinkCellProps extends Props {
    /**
     * Destination url
     * @default ''
     * @since 10.19.0
     * */
    href: string;
}
export interface PercentCellProps extends Props {
}
export interface SelectCellProps extends SelectProps {
    /**
     * Message to be displayed below the select during an error
     * @default ''
     * @since 10.19.0
     */
    errorMessage?: string;
    /**
     * Triggers the spinner that covers inline editable content
     * @default false
     * @since 10.19.0
     */
    processing?: boolean;
}
export interface DateSelectCellProps extends DateSelectProps {
    /**
     * @since 10.19.0
     */
    className?: string;
    /**
     * Message to be displayed below the date select during an error
     * @default ''
     * @since 10.19.0
     */
    errorMessage?: string;
    /**
     * Triggers the spinner that covers inline editable content
     * @default false
     * @since 10.19.0
     */
    processing?: boolean;
}
export interface TableProps extends Props {
    /**
     * @since 10.19.0
     */
    inline?: boolean;
    /**
     * The table variant
     * @since 10.19.0
     */
    variant?: TableVariant;
}
export interface TextAreaCellProps extends Props {
    /**
     * Message to be displayed below the textarea during an error
     * @since 10.19.0
     */
    errorMessage?: string;
    /**
     * Triggers the spinner for processing inline editable content
     * @since 10.19.0
     */
    processing?: boolean;
    /**
     * Sets whether it is resizable
     * @since 10.19.0
     */
    resizable?: boolean;
}
export interface TableTextCellProps extends Props {
}
export {};
