/// <reference types="react" />
import { TopicSortFields } from '@parlor/common/amplify-schema';
import { TableProps } from '@parlor/components/data-table';
import { VisibleColumnsControlProps } from '@parlor/components/table-controls';
import { ServiceReturnType } from '@parlor/contexts/services-2';
import { TopicHeaderId } from '../hooks';
import { TopicTabs } from './enums';
export declare namespace ITopicTable {
    type BaseModel = {
        __typename?: string;
        id: string;
    };
    type TopicTableHeader = {
        canBeHidden?: boolean;
        id: TopicHeaderId;
        isSortable?: boolean;
        name: TopicSortFields | string;
        title: string;
    };
    type ITopicModel = ServiceReturnType<'topic', 'useList'>['data']['list']['edges'][number]['node'];
    type IInboxModel = ServiceReturnType<'inbox', 'useList'>['data']['list']['edges'][number]['node'];
    type Model = (IInboxModel | ITopicModel) & {
        currentRevenue?: number;
        lostRevenue?: number;
        openOpportunityRevenue?: number;
        totalClosedLostRevenue?: number;
    };
    type CellItemProps<T extends ITopicModel> = {
        topic: T;
    };
    type TopicTableProps<I extends IInboxModel, T extends ITopicModel> = {
        activeTab?: TopicTabs;
        data: I[] | T[];
        getInfiniteScrollProps?: TableProps<I | T>['getInfiniteScrollProps'];
        getSubBodyProps: TableProps<I | T>['getSubBodyProps'];
        hasMore?: boolean;
        isAirtableEnabled?: boolean;
        isJiraEnabled?: boolean;
        isLoading?: boolean;
        onLoadMore?: () => Promise<unknown> | unknown;
        onSelectTopic: (topic: T) => void;
        onSortOrderChange: (orderOptions: {
            activeColumn: string;
            sortOrder: string;
        }) => void;
        openNewTopicSidebar: VoidFunction;
        renderIcons: (item: I | T) => JSX.Element;
        searchValue?: string;
        selectedTopicId?: string;
        visibleColumns: VisibleColumnsControlProps['visibleColumns'];
    };
}
