import { ReactElement } from 'react'; import { PaperProps as CorePaperProps } from '@krowdy/kds-core/Paper' import { KrowdyButtonProps } from '@krowdy/kds-core/Button' import { AppliedFilter, FilterGroup, FilterTypeType } from '@krowdy/utils/filters' export * from '@krowdy/utils/filters' interface Classes { backIcon?: string; root?: string; titleContainer?: string; groupFilterContainer?: string; } type CandidateValue = { _id: string | number; label: string } type DataUserFlow = { 'data-userflow': string; } type ChildProps = { PaperProps: CorePaperProps | DataUserFlow; AddFiltersButtonProps: KrowdyButtonProps | DataUserFlow } interface Config { type: string; } interface LoadDataSetArgs { config: Config; uiFilterConfig: FilterGroup; } interface LoadDataSetResponse { data: any; columnName: string; } interface LoadItemsArgs { config: Config; uiFilterConfig: FilterGroup; search: string; page: number; limit: number; } interface LoadItemsResponse { docs: { _id: string; label: string; count?: number; }[]; info: { hasNextPage: boolean; page: number; totalDocs: number; } } interface LoadImproverKeysArgs { filters: AppliedFilter[]; } interface LoadImproverKeysResponse { key: string; label: string; } interface OnShowRecommendationAlertArgs { type: string | null } export interface TreeFiltersProps { childProps?: ChildProps; classes?: Classes; filterGroups: FilterGroup[]; filters: AppliedFilter[]; uniqueFilter?: boolean; headerHomeComponent?: React.ReactNode; listWidth?: number; onChangeFilters: (appliedFilters: AppliedFilter[]) => void; title: string; viewDefault?: string; filterTypes?: FilterTypeType[]; actionsComponent?: ReactElement | ReactElement[]; onChangePrevFilters?: (prevFilters: AppliedFilter[]) => Promise; loadItems?: (args: LoadItemsArgs) => Promise; loadDataSet?: (args: LoadDataSetArgs) => Promise; entityName: string; totalItems?: number; ref?: React.MutableRefObject; loadImproveFilters?: (args: LoadImproverKeysArgs) => Promise; showRecommends?: boolean; onShowRecommendationAlert?: (args: OnShowRecommendationAlertArgs) => void; disabled?: boolean; addGroupAllow?: boolean; refId?: string | number; orientation?: 'vertical' | 'horizontal'; selectOptionDisabled?: boolean; enabledBreakdown?: boolean; onSelectBreakdown: (filter: AppliedFilter) => void; } declare const TreeFilters: React.ComponentType; export default TreeFilters