import { createColumnHelper as coreCreateColumnHelper } from '@tanstack/table-core';
import type { RowData, Table, TableFeatures, TableOptions } from '@tanstack/table-core';
export type CreateTableHookOptions<TFeatures extends TableFeatures> = Omit<TableOptions<TFeatures, any>, 'columns' | 'data' | 'state'>;
export type AppEmberTable<TFeatures extends TableFeatures, TData extends RowData> = Table<TFeatures, TData>;
export type AppColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = ReturnType<typeof coreCreateColumnHelper<TFeatures, TData>>;
/**
 * Bundles a feature set and shared default options once so every table in your
 * app can be created without repeating them. Returns a typed column helper
 * factory and a `createAppTable` that wraps {@link useTable}.
 *
 * Unlike the React adapter's hook, this does not pre-bind cell/header
 * components onto the table; render with the `FlexRenderCell`,
 * `FlexRenderHeader`, and `FlexRenderFooter` components as usual.
 *
 * @example
 * ```ts
 * const { createAppTable, createAppColumnHelper } = createTableHook({
 *   features: tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns }),
 * })
 *
 * const columnHelper = createAppColumnHelper<Person>()
 * const columns = columnHelper.columns([...])
 *
 * // inside a Glimmer component; passing `this` binds cleanup to its lifecycle
 * table = createAppTable(this, () => ({ columns, data: this.data }))
 * ```
 */
export declare function createTableHook<TFeatures extends TableFeatures>({ ...defaultTableOptions }: CreateTableHookOptions<TFeatures>): {
    appFeatures: TFeatures;
    createAppColumnHelper: <TData extends RowData>() => AppColumnHelper<TFeatures, TData>;
    createAppTable: {
        <TData extends RowData>(owner: object, getTableOptions: () => Omit<TableOptions<TFeatures, TData>, "features">): AppEmberTable<TFeatures, TData>;
        <TData extends RowData>(getTableOptions: () => Omit<TableOptions<TFeatures, TData>, "features">): AppEmberTable<TFeatures, TData>;
    };
};
//# sourceMappingURL=create-table-hook.d.ts.map