import { TableConfig } from "../../table/table-models";
import { ODataConfig } from "../../../../fd-toolbox/odata/odataconfig";
import { Layout } from "../../layout/layout";
import { ResourceFilterListConfig } from "../../filtering/resource-filter-list-config";
/**
 * Configuration interface for {@link ResourceList}
 *
 * Defines behavior and appearance settings for resource list components
 */
export interface ResourceListConfig {
    /**
     * Configuration for {@link Table} component within the resource list.
     * Controls table appearance, column behavior, and interactions.
     * Determines aspects like maximum columns, filter position, edit mode, and custom actions.
     */
    tableConfig: TableConfig;
    /** Position of the filter list relative to the table */
    resourceFilterListConfig?: ResourceFilterListConfig;
    /**
     * Default OData configuration
     */
    oDataConfig?: ODataConfig;
    /**
     * Allows customizing the component's layout.
     */
    unstableLayout?: Layout;
    /**
     * Name of the resource, required to retrieve metadata information about this resource type
     */
    resourceName: string;
    /**
     * Whether to show filtering options
     */
    showFilters?: boolean;
    /**
     * Whether to show the table when there are no resources to display
     * If false, will show pluralName as the table subHeading
     */
    tableRequired?: boolean;
    /**
     * Plural name of the resource, used as subHeading when tableRequired is false
     */
    pluralName?: string;
    /**
     * Hides the back button above the list.
     */
    hideBackButton?: boolean;
    /**
     * Hides the ResourceList view mode dropdown menu (table/cards).
     */
    hideResourceListDropdownMenu?: boolean;
}
export type GetMultiListResourceListConfigFunc = (defaultConfig: ResourceListConfig) => ResourceListConfig;
