import { default as React } from 'react';
import { TablePageInputSelect, TablePageConfig, TablePageResultSelectRecord } from '@kottster/common';
import { TableColumn } from './table-row';
export type TableColumnTransformer = (column: TableColumn) => TableColumn;
export interface TableProps {
    pageSettingsKeyPrefix?: string;
    tablePageConfig: TablePageConfig;
    columns?: TableColumn[];
    /**
     * Custom columns to be added to the table.
     * These columns will be merged with the regular columns.
     */
    customColumns?: TableColumn[];
    /**
     * Function to transform all columns.
     * Executes after columns are auto-generated or provided via the columns prop.
     * @param columns - The current array of column definitions
     * @returns A new array of transformed column definitions
     */
    columnTransformer?: (columns: TableColumn[]) => TableColumn[];
    /**
     * Object with column keys as properties and column overrides as values.
     * Use this to override specific properties of individual columns.
     */
    columnOverrides?: Record<string, TableColumn | TableColumnTransformer>;
    inModal?: boolean;
    form?: {};
    withSelection?: boolean;
    selectedPrimeryKeyValues?: string[];
    onRecordSelect?: (record: TablePageResultSelectRecord) => void;
    getByForeignRecord?: TablePageInputSelect['getByForeignRecord'];
}
declare function Table({ pageSettingsKeyPrefix, tablePageConfig, columns: columnsProp, customColumns, columnOverrides, columnTransformer, inModal, form, withSelection, selectedPrimeryKeyValues, onRecordSelect, getByForeignRecord, }: TableProps): React.JSX.Element;
declare namespace Table {
    var RecordModal: typeof import("./record-modal").default;
}
export default Table;
