/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import "./item-list-layout.scss";
import React from "react";
import type { ConfirmDialogParams } from "../confirm-dialog";
import type { TableProps, TableRowProps, TableSortCallbacks } from "../table";
import type { IClassName, StrictReactNode } from "@openlens/utilities";
import type { AddRemoveButtonsProps } from "../add-remove-buttons";
import type { ItemObject, TableCellProps } from "@openlens/list-layout";
import type { Filter } from "./page-filters/store";
import type { ItemListStore } from "./list-layout";
export interface ItemListLayoutContentProps<Item extends ItemObject, PreLoadStores extends boolean> {
    getFilters: () => Filter[];
    tableId?: string;
    className: IClassName;
    getItems: () => Item[];
    store: ItemListStore<Item, PreLoadStores>;
    getIsReady: () => boolean;
    isSelectable?: boolean;
    isConfigurable?: boolean;
    copyClassNameFromHeadCells?: boolean;
    sortingCallbacks?: TableSortCallbacks<Item>;
    tableProps?: Partial<TableProps<Item>>;
    renderTableHeader?: (TableCellProps | undefined | null)[];
    renderTableContents: (item: Item) => (StrictReactNode | TableCellProps)[];
    renderItemMenu?: (item: Item, store: ItemListStore<Item, PreLoadStores>) => StrictReactNode;
    customizeTableRowProps?: (item: Item) => Partial<TableRowProps<Item>>;
    addRemoveButtons?: Partial<AddRemoveButtonsProps>;
    virtual?: boolean;
    hasDetailsView?: boolean;
    detailsItem?: Item;
    onDetails?: (item: Item) => void;
    customizeRemoveDialog?: (selectedItems: Item[]) => Partial<ConfirmDialogParams>;
    spinnerTestId?: string;
    /**
     * Message to display when a store failed to load
     *
     * @default "Failed to load items"
     */
    failedToLoadMessage?: StrictReactNode;
}
export declare const ItemListLayoutContent: <Item extends ItemObject, PreLoadStores extends boolean>(props: ItemListLayoutContentProps<Item, PreLoadStores>) => React.ReactElement;
