/**
 * Copyright (c) Adaptavist, Inc.
 */
import { ComponentPropsWithoutRef } from 'react';
import { GenericProps } from '../../utilities';
export type ITableCaption = ComponentPropsWithoutRef<'caption'> & GenericProps;
export type ITable = ComponentPropsWithoutRef<'table'> & GenericProps & {
    /**
     * Prop to denote if the Table should be striped or not.
     *
     * If set to true, the Table will alternate stripes for rows.
     * If set to false, the Table will render inheriting its' background.
     *
     * Default is `true`.
     */
    isStriped?: boolean;
};
export type ITableColumn = ComponentPropsWithoutRef<'td' | 'th'> & GenericProps & {
    /**
     * Prop to add a unique header to the TableColumn Atom that is only read by screenreaders.
     *
     * Default is `an empty string`.
     */
    headers?: string | undefined;
    /**
     * Prop to add a semantic rowSpan to the TableColumn Atom.
     *
     * Use when having two or more TableColumns (I.E. for Dual Headings) to differentiate how many headings are in a 'group'.
     *
     * Default is `undefined`.
     */
    rowSpan?: number | undefined;
};
export type ITableHeading = ComponentPropsWithoutRef<'td' | 'th'> & GenericProps & {
    /**
     * Prop to add a semantic colSpan to the TableHeading Atom.
     *
     * Identical to rowspan,  but vertical as opposed to horizontal.
     *
     * Default is `undefined`.
     */
    colSpan?: number | undefined;
    /**
     * Prop to add a bottom-side border to the TableHeading Atom.
     *
     * If set to true, a border will render on the bottom side of the TableHeading.
     * If set to false, no border will render on the bottom side of the TableHeading.
     *
     * Default is `false`.
     */
    hasBottomBorder?: boolean;
    /**
     * Prop to add a left-side border to the TableHeading Atom.
     *
     * If set to true, a border will render on the left side of the TableHeading.
     * If set to false, no border will render on the left side of the TableHeading.
     *
     * Default is `false`.
     */
    hasLeftBorder?: boolean;
    /**
     * Prop to add a right-side border to the TableHeading Atom.
     *
     * If set to true, a border will render on the right side of the TableHeading.
     * If set to false, no border will render on the right side of the TableHeading.
     *
     * Default is `false`.
     */
    hasRightBorder?: boolean;
    /**
     * Prop to add a top-side border to the TableHeading Atom.
     *
     * If set to true, a border will render on the top side of the TableHeading.
     * If set to false, no border will render on the top side of the TableHeading.
     *
     * Default is `false`.
     */
    hasTopBorder?: boolean;
    /**
     * Prop to add a unique header to the TableHeading Atom that is only read by screenreaders.
     *
     * Default is `an empty string`.
     */
    headers?: string | undefined;
    /**
     * Prop to add a unique identifier to the TableHeading Atom.
     *
     * Default is `an empty string`.
     */
    id?: string;
    /**
     * Prop to denote if the current TableHeading Atom should be bold or not.
     *
     * If set to true, the TableHeading's text will have a bold font weight.
     * If set to false, the TableHeading's text will have the regular font weight.
     *
     * Default is `false`.
     */
    isBold?: boolean;
    /**
     * Prop to denote if the current TableHeading Atom should have a white background to override CSS stylings for data columns.
     *
     * If set to true, the TableHeading will have a white background.
     * If set to false, the TableHeading will inherit its' background.
     *
     * Default is `false`.
     */
    isWhite?: boolean;
    /**
     * Prop to add a semantic rowSpan to the TableHeading Atom.
     *
     * Use when having two or more TableHeadings (I.E. for Dual Headings) to differentiate how many headings are in a 'group'.
     *
     * Default is `undefined`.
     */
    rowSpan?: number | undefined;
    /**
     * Prop to add a semantic scope to the TableHeading Atom.
     *
     * Use when having two or more TableHeadings (I.E. for Dual Headings).
     *
     * Default is `undefined`.
     */
    scope?: 'col' | 'colgroup' | 'row' | 'rowgroup' | undefined;
};
export type ITableRow = ComponentPropsWithoutRef<'tr'> & GenericProps & {
    /**
     * Prop to denote if the current TableRow Atom should have a gray background to override CSS stylings for data rows.
     *
     * If set to true, the TableRow will have a gray background.
     * If set to false, the TableRow will inherit its' background.
     *
     * Default is `false`.
     */
    isGray?: boolean;
};
export type ICol = ComponentPropsWithoutRef<'col'> & GenericProps;
export type IColGroup = ComponentPropsWithoutRef<'col'> & GenericProps & {
    /**
     * Prop to control how many instances of the TableColumn Atom are being expected to be rendered.
     *
     * Default is `undefined`.
     */
    span?: number | undefined;
};
