import { RenderResult } from '@homebound/rtl-utils';
export { blur, change, click, clickAndWait, focus, input, type, typeAndWait, wait } from '@homebound/rtl-utils';

declare function cell(r: RenderResult, row: number, column: number): HTMLElement;
declare function cellOf(r: RenderResult, tableTestId: string, rowNum: number, column: number): HTMLElement;
declare function cellAnd(r: RenderResult, row: number, column: number, testId: string): HTMLElement;
declare function row(r: RenderResult, row: number, tableTestId?: string): HTMLElement;
declare function rowAnd(r: RenderResult, rowNum: number, testId: string): HTMLElement;
/** Intended to be used to generate a human-readable text
 * representation of a GridTable using the markdown table syntax.
 * * Example Use: expect(tableSnapshot(r)).toMatchInlineSnapshot(`
 "
 | Name                     | Value |
 | ------------------------ | ----- |
 | Row 1                    | 200   |
 | Row 2 with a longer name | 300   |
 | Row 3                    | 1000  |
 "
 `);
 * */
declare function tableSnapshot(r: RenderResult, columnNames?: string[], tableTestId?: string): string;
/**
 * Selects an option from the Beam SelectField, MultiSelectField, and TreeSelectField components.
 *
 * For select fields that support multiple selections, subsequent calls to this function will toggle the selection state of an option.
 *
 * @param value The value or label of the option.
 * */
declare function select(select: HTMLElement, value: string | string[]): void;
declare function selectAndWait(select: HTMLElement, value: string | string[]): Promise<void>;
declare function getSelected(select: HTMLElement): string[] | string | undefined;
declare function getOptions(select: HTMLElement): string[];

export { cell, cellAnd, cellOf, getOptions, getSelected, row, rowAnd, select, selectAndWait, tableSnapshot };
