import { ColumnType, ColumnGroupType } from '@aplus-frontend/antdv/es/table';
import { VNode, VNodeArrayChildren, RendererNode, RendererElement } from 'vue';
import { ValueTypeRenderConfig } from '../config-provider';
import { EditableColumnType } from '../editable-table/interface';
import { apTableRenderItemMap } from './constants';
import { ApColumnType, ValueEnum, ValueEnumType } from './interface';
import { ColumnTitleProps } from '@aplus-frontend/antdv/es/table/interface';
import { VueNode } from '@aplus-frontend/antdv/es/_util/type';
export type FieldValueType = 'multiple' | 'multipleNumber' | 'dayjs' | 'dayjsRange' | 'dayjsDayRange' | 'number' | 'boolean' | 'object';
export declare const formatParamsValueType: (type: FieldValueType | Record<string, FieldValueType>, value: any, cb: (t: FieldValueType, value: any) => any) => any;
/**
 * 解析数值
 * @param t 值类型
 * @param value 值
 */
export declare const parseFieldValue: (t: FieldValueType, value: any) => any;
/**
 * 对表格的dataIndex进行拼接处理
 * @param dataIndex
 * @returns
 */
export declare function dataIndexToStr(dataIndex: string | number | (string | number)[]): string | number;
type OptionType = {
    label?: string;
    text?: string;
    value?: any;
    disabled?: boolean;
    [key: string]: any;
};
type ValueEnumMap = Map<string | number | boolean, ValueEnumType>;
export declare const objectToMap: (value: ValueEnum | undefined) => ValueEnumMap;
/**
 * valueEnum转options array
 * @param valueEnumParams
 * @returns
 */
export declare const valueEnumToArray: (valueEnumParams: ValueEnum) => Partial<OptionType>[];
/**
 * 获取列在查询表单中的排序
 * @param order
 * @returns
 */
export declare const getColumnOrder: (order?: number) => number;
/**
 * 获取对象形式的FieldProps
 * @param fieldProps
 * @param record
 * @returns
 */
export declare function getFieldProps<RecordType = any>(fieldProps: ApColumnType<any, any>['fieldProps'], opt: Partial<{
    value: any;
    text: any;
    record: any;
    index: number;
    renderIndex: number;
    column: ApColumnType<RecordType, any>;
}>): any;
/**
 * 获取表格的渲染类型
 * @param item
 * @returns
 */
export declare function getTableRenderType(item: ApColumnType | EditableColumnType): "number" | "select" | "date" | "checkbox" | "radio" | "text" | "cascader" | "treeSelect" | "textArea" | "status" | "password" | "switch" | "action" | "index" | "dateRange";
export declare function getTableCellRenderNode(renderType: keyof typeof apTableRenderItemMap, renderProps: any, record: any, extraRenderMap?: Record<string, ValueTypeRenderConfig>): any;
/**
 * 获取查询表单最终渲染的节点
 * @param item
 * @param extraRenderMap
 * @returns
 */
export declare function getSearchFormItemRenderNode(item: any, extraRenderMap?: Record<string, ValueTypeRenderConfig>): (() => VNode<unknown, unknown, {
    [key: string]: any;
}>) | (() => import("vue/jsx-runtime").JSX.Element | null);
/**
 * 处理表格render组件的props
 * @param item
 * @param renderOption
 * @returns
 */
export declare function getTableRenderProps(item: ApColumnType<any, any>, renderOption: any): any;
/**
 * 将apColumn转化为column
 * @param column
 * @returns
 */
export declare function apColumnToColumn(column: ApColumnType): ApColumnType;
/**
 * 更新查询表单的的props
 * @param item
 * @param fieldProps
 * @returns
 */
export declare function updateFormProps(item: ApColumnType<any, any>, fieldProps: any): any;
/**
 * 对象数组字符串化
 * @param value
 * @returns
 */
export declare function objectToString(value: any): any;
export declare function getTableTitle(column: ApColumnType<any>, titleNodeClassName: string | string[], slot?: (props: {
    title: any;
    column: ApColumnType<any>;
}) => any, tooltipColor?: string): number | boolean | void | VNodeArrayChildren | VNode< RendererNode, RendererElement, {
    [key: string]: any;
}> | ((props: ColumnTitleProps<any>) => VNodeArrayChildren | VueNode) | null;
export declare function recursionApColumns<ReturnType = any, ColumnsType extends Array<any> = (ColumnType | ColumnGroupType<any>)[]>(columns: ColumnsType, handler: (column: ColumnsType[0]) => ReturnType): ReturnType[];
export declare function isEqualCustom(value: any, other: any): boolean | undefined;
export declare function falseToUndefined(obj: any): any;
export {};
