import React from 'react';
import { FormHandles } from '@unform/core';
import { IViewList } from '../../../hooks/useViewList';
import { IPropsNavActions } from '../../NavActions';
import { IPropsTabs, ITabsRef } from '../../Tabs/Tabs.interface';
import { IPropsTagFilter, ITagFilterRef } from '../../TagsFilters/TagsFilters.interface';
export declare type IFilterComponent<T = any> = React.FunctionComponent<{
    handleFilters: () => void;
    filters: T;
}>;
export interface IPageListingProps {
    viewList: IViewList;
    FiltersContainerComponent?: React.FunctionComponent<IPageListingChildrenProps>;
    HeaderListingContainerComponent?: React.FunctionComponent<IPageListingChildrenProps>;
    TitleContainerComponent?: React.FunctionComponent<IPageListingChildrenProps>;
    FiltersComponent: IFilterComponent;
    renderResource: (resource: any, index: number) => JSX.Element;
    renderResourceSkeleton: (resource: any, index: number) => JSX.Element;
    navActions?: IPropsNavActions;
    tabs?: IPropsTabs;
    sortOptions?: {
        name: any;
        value: any;
    }[];
    tagsFilters?: Partial<IPropsTagFilter>;
    title?: string;
    textResourceSingular?: string;
    textResourcePlural?: string;
    onClickHeaderBtn?: () => void;
    showCountListing?: boolean;
}
export interface IPageListingChildrenProps extends IPageListingProps {
    tabsRef: React.MutableRefObject<ITabsRef>;
    tagsFiltersRef: React.MutableRefObject<ITagFilterRef>;
    formSortRef: React.MutableRefObject<FormHandles>;
    scrollListingRef: React.MutableRefObject<HTMLDivElement>;
    openFilters: () => void;
    closeFilters: () => void;
    filterMobileOpen: boolean;
    setFilterMobileOpen: (v: boolean) => void;
}
//# sourceMappingURL=PageListing.interface.d.ts.map