import { DataTableProps, ColumnDef } from './types.js';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import { useTableState } from './use-table-state.js';
import { ConditionalRule } from '../../lib/table-properties-types.js';
import '../../lib/row-height.js';

declare function DataTableToolbar<TData extends Record<string, unknown>>({ state, columns, searchable, 
/** When false, hides filter pills, search, and filter controls (e.g. dashboard canvas edit mode). */
showQueryControls, renderFilterOptionValue, toolbarSlot, searchAriaLabel, }: {
    state: ReturnType<typeof useTableState<TData>>;
    columns: ColumnDef<TData>[];
    searchable?: boolean;
    showQueryControls?: boolean;
    renderFilterOptionValue?: (fieldKey: string, value: string) => React.ReactNode;
    toolbarSlot?: (state: ReturnType<typeof useTableState<TData>>) => React.ReactNode;
    /** Passed to the search input `aria-label` (e.g. "Search placements") */
    searchAriaLabel?: string;
}): react_jsx_runtime.JSX.Element;
interface DataTableExtendedProps<TData extends Record<string, unknown>> extends DataTableProps<TData> {
    /** Slot for a toolbar drawer button + drawer itself (e.g. TablePropertiesDrawer) */
    toolbarSlot?: (state: ReturnType<typeof useTableState<TData>>) => React.ReactNode;
    /** Slot rendered inside the floating bulk-action bar (after the "N selected" label) */
    bulkActionsSlot?: (selected: Set<string | number>, rows: TData[]) => React.ReactNode;
    /** Optional "add new row" row text — pass false to hide */
    addRowLabel?: string | false;
    /** Custom option-value renderer for filter pills */
    renderFilterOptionValue?: (fieldKey: string, value: string) => React.ReactNode;
    /** When set by DataTablePaginated — drives row slicing inside useTableState */
    paginationOverride?: {
        page: number;
        pageSize: number;
    };
    /** When true, removes rounded bottom corners so a pagination bar can attach flush */
    hasFooter?: boolean;
    /** Conditional formatting rules — apply bg color to cells based on value */
    conditionalRules?: ConditionalRule[];
    /** When false, the column header row is hidden (Display options). */
    showColumnHeaders?: boolean;
    /** When set, table uses this state (e.g. shared with board view) instead of internal useTableState. */
    state?: ReturnType<typeof useTableState<TData>>;
    /**
     * Incremental row rendering for very large datasets. Keeps initial paint fast
     * and appends remaining rows in idle slices while showing a loading hint.
     */
    lazyLoading?: {
        enabled?: boolean;
        threshold?: number;
        chunkSize?: number;
        intervalMs?: number;
        loadingLabel?: string;
    };
}
declare function DataTable<TData extends Record<string, unknown>>(props: DataTableExtendedProps<TData>): react_jsx_runtime.JSX.Element;

export { DataTable, type DataTableExtendedProps, DataTableToolbar };
