import type { UseQuery } from "@reduxjs/toolkit/dist/query/react/buildHooks"; import type { ColumnFilterElementType, ColumnProps } from "primereact/column"; import type { Dispatch, ReactNode, SetStateAction } from "react"; import type { DataTableSelectionChangeParams } from "primereact/datatable"; import type { UpdateCredentialsArgs } from "../../../store/slices/layoutSlice/layout.types"; import { UpdateCredentials } from "../../../store/slices/authSlice/auth.types"; import { DataTableProps } from "primereact/datatable"; import { DropdownChangeParams } from "primereact/dropdown"; export declare type OnGlobalFilterChange = (props: { field: string; value: string; remove?: boolean; }) => void; export declare type State = { [field: string]: FilterState[]; }; export declare type PropsTemplateFilter = { onGlobalFilterChange: OnGlobalFilterChange; setState: React.Dispatch>; state: State; index: number; }; export declare type PropsTableGenerator = { useQuery: UseQuery; columns?: ColumnTemplate[]; header?: JSX.Element; selectData?: never[]; setSelectData?: Dispatch>; children?: ReactNode; }; export declare type TextFilterTemplate = (props: PropsTemplateFilter) => ColumnFilterElementType; export declare type DataQuery = { pages: number; data: any[]; }; export declare type PropsUseTable = { useQuery: UseQuery; selectData?: never[]; setSelectData?: Dispatch>; emptyStateLog?: UpdateCredentialsArgs; updateCredentials?: UpdateCredentials; columns: ColumnTemplate[]; }; export declare type UpdateChecked = (e: DataTableSelectionChangeParams) => void; export declare type TableGeneratorProps = PropsTableGenerator & DataTableProps & PropsUseTable & { dropdownOptions?: { label: string; value: string; }[]; renderPagination?: boolean; filterChange?: (onGlobalFilterChange: OnGlobalFilterChange) => void; onFilterChange?: (filter: {}) => void; }; export declare type FilterContructorProps = { dispatch: React.Dispatch; onGlobalFilterChange: OnGlobalFilterChange; columnProps: ColumnTemplate; filtersState: State; }; export declare type FilterProps = { field: keyof State; title: string; } & FilterContructorProps; export declare type FilterState = { [key: string]: any; type: string; negative: boolean; value: string; index: number; adding: boolean; }; export declare type FilterContructor = (_: FilterContructorProps) => ColumnFilterElementType; export declare type ActionFilterState = { type: string; payload: Partial<{ field: keyof State; index: number; key: string; value: unknown; }>; }; export declare type DropdownFilterProps = { field: string; title: string; dropdownOptions: DropdownOption[]; index: number; } & PropsTemplateFilter; export declare type TextFilterProps = FilterProps & { index: number; }; export declare type DropFilterProps = FilterProps & { index: number; }; export declare const enum ClassList { waiting = "border-warning", active = "border-danger", success = "border-success", info = "border-info", animationBounce = "animate__animated animate__bounceIn animate__faster", animationHeadShake = "animate__animated animate__headShake animate__faster" } export declare type DropdownOption = { label: string; value: string; }; export declare type ColumnTemplate = ColumnProps & { dropdownOptions?: DropdownOption[]; }; export declare type OptionTemplateProps = { updateNegative: () => void; updateTrashState: () => void; updateAdding: () => void; onchangeText: ({ value }: DropdownChangeParams) => void; negative: boolean; adding: boolean; index: number; };