/*
 * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// ObjectTable that loads and displays data for a given objectSet
import { ObjectTable as _ObjectTable } from "../../object-table/ObjectTable.js";
import { withOsdkMetrics } from "../../util/withOsdkMetrics.js";
export const ObjectTable = withOsdkMetrics(_ObjectTable, "ObjectTable");

// BaseTable that does not handle data fetching

export { BaseTable } from "../../object-table/Table.js";
export { ColumnConfigDialog } from "../../object-table/ColumnConfigDialog.js";
export { MultiColumnSortDialog } from "../../object-table/MultiColumnSortDialog.js";
// Loading cell components for custom column renderers.
// Use `LoadingCell` when rendering a full `<td>` element (e.g. in a custom row renderer).
// Use `LoadingCellContent` when rendering just the skeleton content inside an existing cell.
export { LoadingCell, LoadingCellContent } from "../../object-table/LoadingCell.js";

/* --------------------- Headless hooks --------------------- */

// Data loading (OSDK-aware)
export { useFunctionColumnsData } from "../../object-table/hooks/useFunctionColumnsData.js";
export { useObjectTableData } from "../../object-table/hooks/useObjectTableData.js";

// Column definitions
export { useColumnDefs } from "../../object-table/hooks/useColumnDefs.js";
export { useSelectionColumn } from "../../object-table/hooks/useSelectionColumn.js";

// Column state
export { useColumnPinning } from "../../object-table/hooks/useColumnPinning.js";
export { useColumnResize } from "../../object-table/hooks/useColumnResize.js";
export { useColumnVisibility } from "../../object-table/hooks/useColumnVisibility.js";

// Row state
export { useFocusedRow } from "../../object-table/hooks/useFocusedRow.js";
export { useRowSelection } from "../../object-table/hooks/useRowSelection.js";

// Sorting
export { useTableSorting } from "../../object-table/hooks/useTableSorting.js";

// Editing
export { useEditableTable } from "../../object-table/hooks/useEditableTable.js";

// Snapshot / export
export { useObjectTableSnapshot } from "../../object-table/hooks/useObjectTableSnapshot.js";

// Cell context menu
export { useCellContextMenu } from "../../object-table/hooks/useCellContextMenu.js";

// Supporting types referenced by the hook signatures above
//# sourceMappingURL=object-table.js.map