import type { TableTypes } from './table-interface';
/**
 * Creates a new worker cache / store with the given data
 * @param rows
 * @param columns
 * @returns the newly created worker store ID
 */
export declare function createWorkerStore(rows: TableTypes.NanoTable['rows'], columns: Partial<TableTypes.ColumnConfig>[]): Promise<string>;
export declare function syncDataToWorker(workerId: string, rows: TableTypes.NanoTable['rows']): Promise<boolean>;
/**
 * Sync the column config to the worker store
 * @param workerId
 * @param columns
 * @returns `true` upon success
 */
export declare function syncConfigToWorker(workerId: string, columns: Partial<TableTypes.ColumnConfig>[]): Promise<boolean>;
/** SEARCH */
/**
 * A general text search across all table columns.
 * Search is the first thing we do. Cache the result for filtering / sorting
 * @param workerId
 * @param term
 * @returns the searched for data rows - with col filters / sorts also applied
 */
export declare function workerSearch(workerId: string, term: string): Promise<TableTypes.RowGeneric[]>;
/**
 * Filter the data rows based on the given filters
 * @param workerId
 * @param filters
 * @returns the filtered data rows
 */
export declare function workerFilter(workerId: string, filters: TableTypes.Filter[]): Promise<TableTypes.RowGeneric[]>;
/**
 * Finds and applies the sort conditions to the data rows
 * @param workerId
 * @param prop to sort by
 * @param order order to sort by
 * @returns the sorted data rows
 */
export declare function workerSort(workerId: string, prop: TableTypes.Prop, order: TableTypes.Order): Promise<TableTypes.RowGeneric[]>;
/**
 * Clean up
 * @param workerId
 */
export declare function destroyWorkerStore(workerId: string): Promise<void>;
