import type { WorkbookLayout } from "./types.js"; export interface TableFilterContext { field: string; columnOffset: number; rangeRef: string; } export interface TableFilterController { items(ctx: TableFilterContext): string[] | Promise; activeValues(ctx: TableFilterContext): string[] | Promise; setFilter(ctx: TableFilterContext & { values: string[]; }): WorkbookLayout | void | Promise; setSort(ctx: TableFilterContext & { descending: boolean | null; }): WorkbookLayout | void | Promise; } export interface TableFilterPopoverHandle { open(ctx: TableFilterContext, anchor: { left: number; top: number; right: number; bottom: number; }): void; close(): void; destroy(): void; } export declare function createTableFilterPopover(controller: TableFilterController, onChange: (layout: WorkbookLayout | void) => void): TableFilterPopoverHandle;