import { WithNormalizedProps } from "../../global"; import { CheckboxEvent } from "../ebay-checkbox/component-browser"; export type TableSort = "asc" | "desc" | "none"; export interface TableHeader extends Omit { "column-type"?: "normal" | "numeric" | "layout" | "icon-action"; "row-header"?: boolean; name?: string; sort?: TableSort | boolean; href?: Marko.HTML.A["href"]; renderBody: Marko.Body; } export interface TableCell extends Omit { } export interface TableRow extends Omit { name?: string; selected?: boolean; cell?: Marko.AttrTag; } export interface TableInput extends Omit { header: Marko.AttrTag>; mode?: "none" | "selection"; "body-state"?: "loading" | "none"; "all-selected"?: Marko.HTMLAttributes["aria-checked"]; row?: Marko.AttrTag; "frozen-header"?: boolean; density?: "compact" | "relaxed" | "none"; "a11y-loading-text"?: string; "a11y-select-all-text"?: string; "a11y-select-row-text"?: string; "on-select"?: (event: { selected: Record; allSelected?: Marko.HTMLAttributes["aria-checked"]; }) => void; "on-sort"?: (event: { sorted: Record; }) => void; } export interface Input extends WithNormalizedProps { } interface State { selected: Record; sorted: Record; allSelected: Marko.HTMLAttributes["aria-checked"]; } export default class EbayTable extends Marko.Component { disabledItems: Set; tbody: HTMLElement; animationFrame: number; onCreate(): void; onMount(): void; onInput(input: Input): void; onUpdate(): void; onRender(): void; onDestroy(): void; getSelectedRowStateFromInput(input: Input): Record; getSortedColStateFromInput(input: Input): Record; getAllSelectedState(input: Input): Marko.HTMLAttributes["aria-checked"]; headerSelect(): void; rowSelect(name: string, { checked }: CheckboxEvent): void; setLoading(): void; sortColumn(name: string): void; } export {};