/// <reference types="react" />
import { Inbox, SortDirection, Topic, TopicFilter, TopicSortFields } from '@parlor/common';
import { TableProps, useTableControls } from '@parlor/components';
import { useTopicTableHeaders } from '../hooks';
import { ITopicTable, TopicTabs } from '../types';
export declare namespace IUseTopicTable {
    type SortBy = TopicSortFields;
    type SortDir = SortDirection;
    type OrderOptions = {
        activeColumn: SortBy;
        sortOrder: SortDir;
    };
    type OnSearch = (searchValue: string) => void;
    type OnActiveTabChange = (activeTab: TopicTabs) => void;
    type OnSortOrderChange = (orderOptions: OrderOptions) => void;
    type OnLoadMore = () => Promise<Inbox[] | Topic[]>;
    type OnSelectTopic = (item: ITopicTable.IInboxModel | ITopicTable.ITopicModel) => void;
    type RenderIcons = (item: ITopicTable.IInboxModel | ITopicTable.ITopicModel) => JSX.Element;
    type GetInfiniteScrollProps = TableProps<ITopicTable.IInboxModel | ITopicTable.ITopicModel>['getInfiniteScrollProps'];
    type GetSubBodyProps = TableProps<ITopicTable.IInboxModel | ITopicTable.ITopicModel>['getSubBodyProps'];
    type Headers = ReturnType<typeof useTopicTableHeaders>;
    type TableControls = ReturnType<typeof useTableControls>;
    type Props = {
        activeTab?: TopicTabs;
        adminId?: string;
        inboxId?: string;
        isLoading?: boolean;
        onActiveTabChange?: OnActiveTabChange;
        onSearch?: OnSearch;
        onSortOrderChange?: OnSortOrderChange;
        searchValue?: string;
        showPathTreeOnHover?: boolean;
        sortBy?: SortBy;
        sortDir?: SortDir;
    };
    type Return = {
        data: Inbox[] | Topic[];
        filterVariables: TopicFilter;
        getInfiniteScrollProps: GetInfiniteScrollProps;
        getSubBodyProps: GetSubBodyProps;
        hasMore: boolean;
        headers: Headers;
        isAirtableEnabled: boolean;
        isJiraEnabled: boolean;
        isLoading: boolean;
        onActiveTabChange: OnActiveTabChange;
        onLoadMore: OnLoadMore;
        onSearch: OnSearch;
        onSelectTopic: OnSelectTopic;
        onSortOrderChange: OnSortOrderChange;
        openNewTopicSidebar: VoidFunction;
        renderIcons: RenderIcons;
        selectedTopicId: string;
        tableControls: TableControls;
    };
}
