import React, { MutableRefObject } from 'react';
import { IViewList } from '@devesharp/react-hooks';
import { ICardContainerProps } from './CardListingContainer/CardListingContainer.interface';
import { IFiltersContainerProps } from './FiltersContainer/FiltersContainer.interface';
export declare type IFilterComponent<T = any> = React.FunctionComponent<{
    handleFilters: (v: () => T) => void;
    filters: T;
}>;
export interface IPageListingProps {
    viewList: IViewList;
}
export interface IPageListing {
    Container: React.ComponentType<IPageListingProps>;
    ScrollContainer: React.ComponentType<React.HTMLAttributes<HTMLDivElement>>;
    FiltersContainer: React.ComponentType<IFiltersContainerProps>;
    Context: React.ComponentType<{
        render: (props: IPageListingChildrenProps) => React.ReactNode;
    }>;
    CardsContainer: React.ComponentType<ICardContainerProps>;
    TextResultCount: React.ComponentType<any>;
}
export interface IPageListingChildrenProps extends IViewList {
    listingElRef: MutableRefObject<any>;
    updateFilters: (data: any) => void;
    clearFilters: () => void;
    updateFiltersDebounce: (data: any) => void;
    applyFiltersDebounce: () => void;
    currentPage: number;
    setPage: (page: number) => void;
    filterMobileOpen: boolean;
    openFilters: () => void;
    closeFilters: () => void;
    pageCountStart: number;
    pageCountEnd: number;
    showCardsSkeleton: boolean;
    showCards: boolean;
}
//# sourceMappingURL=PageListing.interface.d.ts.map