import React from 'react';
import type { IDetailsHeaderProps, IRenderFunction, IDetailsListStyles, IDetailsList } from '@fluentui/react';
import type { UIColumn, EditedCell, UITableProps, UITableState } from './index.js';
/**
 * Method to copy and sort.
 *
 * @param {T[]} items
 * @param {string }columnKey
 * @param {boolean} isSortedDescending
 * @returns {T[]}
 */
export declare function _copyAndSort<T>(items: T[], columnKey: string, isSortedDescending?: boolean): T[];
/**
 * Focus edited cell.
 *
 * @param {EditedCell | undefined} editedCell
 * @param {UITableProps} props
 * @param {string} direction
 * @returns {Promise<void>}
 */
export declare function focusEditedCell(editedCell: EditedCell | undefined, props: UITableProps, direction?: string): Promise<void>;
/**
 * Get cell from coordinates.
 *
 * @param {number} rowIdx
 * @param {string} columnKey
 * @param {UIColumn} columns
 * @param {boolean} addOneToColIndex
 * @returns {NodeListOf<Element>}
 */
export declare function getCellFromCoords(rowIdx: number, columnKey: string, columns: UIColumn[], addOneToColIndex?: boolean): Element;
/**
 * Scrolls to column.
 *
 * @param {string} columnKey
 * @param {UIColumn[]} columns
 * @param {number} selectedRow
 * @param {boolean} addOneToColIndex
 */
export declare function scrollToColumn(columnKey: string, columns: UIColumn[], selectedRow: number, addOneToColIndex?: boolean): void;
/**
 * Scrolls to row.
 *
 * @param {number} idx
 * @param {IDetailsList | null} table
 */
export declare function scrollToRow(idx?: number, table?: IDetailsList | null): void;
/**
 * Wait for selector.
 *
 * @param {string} selector
 * @param {number} count - number of tries, after which the element is considered not found
 *                          (so that the function doesn't run forever)
 * @returns {Promise<Element>}
 */
export declare function waitFor(selector: string, count?: number): Promise<Element | void>;
/**
 * Promisified setTimeout.
 *
 * @param ms
 * @returns Promise
 */
export declare function sleep(ms?: number): Promise<unknown>;
/**
 * Adds row numbers.
 *
 * @param {any} columns
 * @param {boolean} showRowNumbers
 * @returns {any}
 */
export declare function addRowNumbers(columns: any, showRowNumbers?: boolean): any;
export declare const _onHeaderRender: IRenderFunction<IDetailsHeaderProps>;
/**
 * Gets styles for selected cell.
 *
 * @param state
 * @returns {Partial<IDetailsListStyles>}
 */
export declare function getStylesForSelectedCell(state: UITableState): Partial<IDetailsListStyles>;
export declare function showFocus(): void;
export declare function hideFocus(): void;
/**
 * Gets ComboBox input.
 *
 * @param ref
 * @returns {HTMLInputElement | undefined }
 */
export declare function getComboBoxInput(ref?: React.RefObject<HTMLDivElement>): HTMLInputElement | undefined;
//# sourceMappingURL=UITable-helper.d.ts.map