import * as React from 'react'; import { SxProps } from '@mui/system'; import { Theme } from "../styles/index.js"; import { ExtendButtonBase, ExtendButtonBaseTypeMap } from "../ButtonBase/index.js"; import { OverrideProps } from "../OverridableComponent/index.js"; import { TableSortLabelClasses } from "./tableSortLabelClasses.js"; import { CreateSlotsAndSlotProps, SlotProps } from "../utils/types.js"; export interface TableSortLabelRootSlotPropsOverrides {} export interface TableSortLabelIconSlotPropsOverrides {} export interface TableSortLabelSlots { /** * The component that renders the root slot. * @default span */ root?: React.ElementType | undefined; /** * The component that renders the icon slot. * @default ArrowDownwardIcon */ icon?: React.ElementType | undefined; } export type TableSortLabelSlotsAndSlotProps = CreateSlotsAndSlotProps>, TableSortLabelRootSlotPropsOverrides, TableSortLabelOwnerState>; /** * Props forwarded to the icon slot. */ icon: SlotProps>, TableSortLabelIconSlotPropsOverrides, TableSortLabelOwnerState>; }>; export interface TableSortLabelOwnerState extends TableSortLabelOwnProps {} export interface TableSortLabelOwnProps { /** * If `true`, the label will have the active styling (should be true for the sorted column). * @default false */ active?: boolean | undefined; /** * Label contents, the arrow will be appended automatically. */ children?: React.ReactNode; /** * Override or extend the styles applied to the component. */ classes?: Partial | undefined; /** * The current sort direction. * @default 'asc' */ direction?: 'asc' | 'desc' | undefined; /** * Hide sort icon when active is false. * @default false */ hideSortIcon?: boolean | undefined; /** * Sort icon to use. * @default ArrowDownwardIcon */ IconComponent?: React.JSXElementConstructor<{ className: string; }> | undefined; /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx?: SxProps | undefined; } export type TableSortLabelTypeMap = ExtendButtonBaseTypeMap<{ props: AdditionalProps & TableSortLabelOwnProps & TableSortLabelSlotsAndSlotProps; defaultComponent: RootComponent; }>; /** * A button based label for placing inside `TableCell` for column sorting. * * Demos: * * - [Table](https://mui.com/material-ui/react-table/) * * API: * * - [TableSortLabel API](https://mui.com/material-ui/api/table-sort-label/) * - inherits [ButtonBase API](https://mui.com/material-ui/api/button-base/) */ declare const TableSortLabel: ExtendButtonBase; export type TableSortLabelProps = OverrideProps, RootComponent> & { component?: React.ElementType | undefined; }; export default TableSortLabel;