import { ID } from '../../commonStateTypes/common'; import { CategoryCombinationOperator, FilterCategoryType } from '../../commonStateTypes/filterPrimitives'; import { UserRoleType } from '../../entity/userRole/userRoleType'; import { ZeniDate } from '../../zeniDayJS'; import { TaskListFilterCategoryField } from '../taskManager/taskListView/taskList'; export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management' | 'charge_card_payment_history'; export interface MatchingOperatorDropdownOption { label: 'is' | 'is not'; value: 'equal' | 'not_equal'; } export interface TaskFilterCategoryDropdownOption { value: TaskListFilterCategoryField; multiple?: boolean; type?: FilterCategoryType; } export type SpendManagementFilterCategoryDropdownOption = TaskFilterCategoryDropdownOption | { value: string; multiple?: boolean; type?: FilterCategoryType; }; export type FilterCategoryValueType = string | number | ZeniDate; export interface FilterCategory { field: string; matchingOperator: 'equal' | 'not_equal'; values: (string | ZeniDate)[]; valuesCombinationOperator: 'ANY'; } export interface SpendManagementFiltersType { categories: FilterCategory[]; categoryCombinationOperator: CategoryCombinationOperator; } type FilterableItem = { id: ID; } | { cardRepaymentId: ID; }; export declare const applyAdvancedFiltersOnList: (getCategoryValue: (key: string, item: T) => FilterCategoryValueType | (string | undefined)[] | undefined, allItems: T[], filters?: SpendManagementFiltersType, filteredItems?: T[], index?: number) => T[]; export declare const hideCreatedByFilter: (userRole: UserRoleType[]) => boolean; export {};