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; }