/**
 * 常用查询条件 Hook 类型定义
 */
import * as React from 'react';
import type { SenderRef } from '../../cn-sender/view/types/sender-ref';
import type { FormilyFieldConfig } from '../../cn-ai-table/types/formily-field-config';
export interface UseCommonQueryParams {
    /** Sender 组件的 ref */
    senderRef: React.RefObject<SenderRef>;
    /** Formily schema 配置 */
    schema?: Record<string, FormilyFieldConfig>;
    /** 自定义渲染函数（用于 tag，可选，默认使用 FieldTagPopupWrapper） */
    customRenderForTag?: (value: any, onValueChange: (value: any) => void, renderProps: {
        disabled?: boolean;
        readOnly?: boolean;
    }, item: any, formMapRef?: any, onFormMapUpdate?: any) => React.ReactNode;
    /** 搜索回调 */
    onSearch?: (params: Record<string, any>) => void;
    /** 设置最近搜索参数（用于显示"已为您查询"） */
    setLastSearchParams: (params: string) => void;
    /** 操作人 */
    operator?: string;
    /** 页面唯一ID（用于 API 调用的 code 参数） */
    code?: string;
    /** 语言代码（如：zh-CN） */
    language?: string;
    /** 翻译 API 地址 */
    customFieldTransformApi?: string;
    /** 推荐查询 API 地址 */
    customSuggestApi?: string;
    /** 数据字典（columns） */
    dataDict?: Array<{
        displayName: string;
        columnName: string;
        columnType: string;
        options?: any[];
    }>;
}
export interface UseCommonQueryResult {
    /** 常用查询条件弹层是否可见 */
    commonQueryVisible: boolean;
    /** 设置弹层可见性 */
    setCommonQueryVisible: (visible: boolean) => void;
    /** 常用查询条件数据 */
    commonQueries: any[];
    /** 是否正在加载 */
    commonQueriesLoading: boolean;
    /** 处理点击常用查询条件 */
    handleCommonQueryClick: (tokens: any[]) => void;
    /** 钉住的查询条件列表 */
    pinnedQueries: Array<{
        id: string;
        translatorId: string;
        tokens: any[];
        pinnedAt: number;
    }>;
    /** 未钉住的查询条件列表 */
    unpinnedQueries: Array<{
        id?: string;
        tokens: any[];
    }>;
    /** 钉住查询条件 */
    handlePinCommonQuery: (translator: {
        id?: string;
        tokens: any[];
    }) => void;
    /** 取消钉住查询条件 */
    handleUnpinCommonQuery: (queryId: string) => void;
}
