import { type ButtonHTMLAttributes, type ReactNode } from "react";
import { type IconRotatorProps } from "../icon/IconRotator.js";
import { type SortOrder, type TableCellHorizontalAlignment } from "./types.js";
/**
 * @since 6.0.0
 */
export type TableCellContentsIconRotatorProps = Omit<IconRotatorProps, "children" | "rotated">;
/**
 * @since 6.0.0 Extends the `ButtonHTMLAttributes` so the extra props
 * can be passed to the `ButtonUnstyled`
 * @internal
 */
export interface TableCellContentProps extends ButtonHTMLAttributes<HTMLButtonElement> {
    /**
     * The current sort order for this cell. Setting this to `null` will prevent
     * the button from being rendered.
     */
    sortOrder?: SortOrder;
    /**
     * This should normally be the `getIcon("sort")`
     */
    icon?: ReactNode;
    /** @defaultValue `false` */
    iconAfter?: boolean;
    /**
     * Boolean if the icon should be rotated.
     */
    rotated?: boolean;
    /**
     * Any additional props to pass to the `IconRotator`.
     */
    iconRotatorProps?: TableCellContentsIconRotatorProps;
    /**
     * @since 4.0.3
     * @see {@link TableCellHorizontalAlignment}
     */
    hAlign?: TableCellHorizontalAlignment;
}
/**
 * This is mostly an internal component since it is automatically used within
 * the `TableCell` component but this will conditionally wrap the `children`
 * within an `UnstyledButton` to make a clickable cell. This is really to help
 * with sort behavior within headers.
 *
 * @internal
 */
export declare const TableCellContent: import("react").ForwardRefExoticComponent<TableCellContentProps & import("react").RefAttributes<HTMLButtonElement>>;
