import { Table, TableColumnOptions, TableRowOptions } from './table.interface';
/**
* Ontario Table presents structured tabular data with accessible semantics.
*
* For component guidance, see:
* - https://designsystem.ontario.ca/components/detail/tables.html
* - https://designsystem.ontario.ca/developer-docs/components/ontario-table/
*/
export declare class OntarioTable implements Table {
element: HTMLElement;
private tableScrollWrapper;
private tableScrollDiv;
private table;
/**
* Specifies the caption (or title) of the table.
*
* This is optional.
*/
caption?: string | undefined;
/**
* Used to define the columns of the table.
*
* @example;
*
*
*/
tableColumns: string | TableColumnOptions[];
/**
* Used to define the table body data. Note that the keys passed to the `data` object in the tableData should match the keys of the columns defined in the tableColumns prop.
*
* @example
*
*
*/
tableData: string | TableRowOptions[];
/**
* Indicates whether or not the table data should have alternate row zebra striping.
*
* This is optional. By default, zebra striping will be added when the table rows extend 5 rows. If zebra striping is needed to table rows less than 5 rows, the prop should be set to “enabled”. If no zebra stripes are needed, it should be set to “disabled”.
*
* The default will be set to “auto”.
*/
zebraStripes?: 'auto' | 'disabled' | 'enabled' | undefined;
/**
* Used to specify whether or not table data in cells should have reduced top and bottom padding. This is useful for pages with multiple data-heavy tables such as a budget or financial data.
*
* This is optional. By default it will be set to “false”.
*/
condensed?: boolean | undefined;
/**
* Used to specify whether or not the table should extend the full width of its container.
*
* This is optional. By default, it will be set to “false”
*/
fullWidth?: boolean | undefined;
private tableColumnsState;
private tableDataState;
private tableFooterState;
private processTableColumns;
private processTableData;
/**
* Parsse and validates the `tableColumns` prop.
* If the prop is a string, it will be parsed as JSON.
* Validated output is stored in `tableColumnsState`.
*
* If parsing or validation fails, an error message is logged and the state is set to an empty array as a fallback.
*/
private parseTableColumns;
/**
* Parses and validates the `tableData` prop.
* If the prop is a string, it will be parsed as JSON.
* The parsed object is transformed for internal use and stored in `tableDataState` and `tableFooterState`.
*
* If parsing or validation fails, logs an error and sets both data states to empty arrays as a fallback.
*/
private parseTableData;
private transformTableData;
private getZebraStripeClass;
private getTableClasses;
private getColumnClasses;
private generateTableDataHTML;
private applyScrollbar;
componentDidLoad(): void;
componentWillLoad(): void;
render(): any;
}