import { default as React } from 'react';
import { ListPageFilters } from '../../models/common/ListPageFilters/ListPageFilters';
import { TextReplacements } from '../../core/Text';
import { IconNames } from '../../core/Icon';
import { PageSectionBackground } from '../../core/PageSection';
type InfiniteLoaderProps = {
    dataLength: number;
    hasMore: boolean;
    endMessage?: React.ReactNode;
    refreshFunction: () => void;
    nextFunction: () => void;
};
export type ListPageCheckbox = {
    name: string;
    queryParam?: string;
    labelText: string;
    /**
     * Count of filters this can be sent from BE
     * */
    value?: number;
    queryValue?: string | number;
    replacements?: TextReplacements;
};
export type ListPageCheckboxes = {
    title: string;
    items: ListPageCheckbox[];
    reducerKey: string;
    queryParam: string;
};
export type ListPageProps<ItemType> = {
    testId?: string;
    title: string;
    scrollToTopOnLoad?: boolean;
    replacements?: TextReplacements;
    subTitle: string;
    filters?: ListPageFilters;
    items?: ItemType[];
    reducer?: any;
    slice?: any;
    emptyState?: boolean;
    emptyTitle?: React.ReactNode;
    emptySubtitle?: React.ReactNode;
    emptySvgIcon?: string;
    Card: React.ComponentType<{
        item: ItemType;
    }>;
    headerAdditionalInformation?: React.ReactNode;
    headerCustomSection?: React.ReactNode;
    headerActionsCustomSection?: React.ReactNode;
    headerBottomSection?: React.ReactNode;
    action?: {
        text: string;
        cta: () => void;
        iconLeft: IconNames;
        disabled?: boolean;
        loading?: boolean;
    };
    slots?: {
        filterSlot?: React.ReactNode;
        aboveListSection?: React.ReactNode;
    };
    headerFiltersDisplayMode?: "button" | "checkbox";
    headerFiltersBackground?: PageSectionBackground;
    headerHideShadow?: boolean;
    headerShowBottomLine?: boolean;
    showEndMessage?: boolean;
} & InfiniteLoaderProps;
/**
 * Component
 */
export declare const ListPage: <T>(props: ListPageProps<T>) => import("react/jsx-runtime").JSX.Element;
export {};
