/// <reference types="react" />
export declare const ITEMS_FEED_TABS: {
    new: string;
    processed: string;
    resolved: string;
};
export type CRUD<T extends Record<'id', string> = Record<'id', string>> = {
    onDeleteItem: (item: T) => void;
    onEditItem: (item: T) => void;
};
export type NeedsFeedTab = keyof typeof ITEMS_FEED_TABS;
export type NeedsFeedProps<T extends Record<'id', string>> = CRUD<T> & {
    activeTab: NeedsFeedTab;
    addArtifact?: VoidFunction;
    addNeed?: VoidFunction;
    data: T[];
    hasMore: boolean;
    isLoading: boolean;
    onActiveTabChange: (tab: NeedsFeedTab) => void;
    onClickAccount?: (account: {
        id: string;
    }) => void;
    onClickUser?: (user: {
        id: string;
    }) => void;
    onScrollReachedBottom: () => void;
    onSearch: (needSearchQuery: string) => void;
    onSelectItem: (need: T) => void;
    searchTerm: string;
    selectedItemId: string | null;
};
type BaseModel = {
    __typename?: string;
    id: string;
};
export declare const NeedsFeed: <T extends BaseModel = BaseModel>({ addNeed, addArtifact, data, searchTerm, activeTab, isLoading, onActiveTabChange, onSelectItem, onSearch, selectedItemId, onScrollReachedBottom, hasMore, onDeleteItem, onEditItem, onClickAccount, onClickUser, }: NeedsFeedProps<T>) => JSX.Element;
export {};
