interface CacheFocusData {
    /** 唯一key */
    uniqueKey: string;
    /** 关联字段 */
    fieldKeys: string[];
    /** 缓存值 */
    value: any;
}
/**
 *
 */
/** 设备连接器实例接口 */
export interface IDeviceConnector {
    state: {
        /** mqtt取消订阅回调 */
        unMqttTopicMap: Record<string, Function | undefined>;
        /** 当前聚焦的字段key */
        focusFieldKey: string | null;
        /** 当前聚焦的子表字段的行 */
        focusSubRowIndex?: number | null;
        /** 缓存的需要聚焦才修改的值 */
        cacheFieldData: Record<string, CacheFocusData>;
    };
    /** 初始化连接器 */
    init(): void;
    /**
     * 取消订阅mqtt
     * @param id
     */
    unsubscribeMqtt(id: string): void;
    /** 清空数据 */
    clear(): void;
    /**
     * 添加缓存的聚焦时填充的字段数据
     * @param params
     */
    addCachedFocusValue(params: CacheFocusData): void;
    /**
     * 判断字段是否存在缓存聚焦值
     * @param field
     */
    hasCachedFocusValue(field: string): boolean;
    /**
     * 获取缓存聚焦值
     * @param field
     */
    getCachedFocusValue(field: string): any;
}
export interface IDeviceLinkTmplUtil {
    /** 创建模板 */
    createTmpl(type: unknown): unknown;
    /**  计算 AI OCR 完整提示词 */
    calcEntirePrompt(tmpl: unknown): string;
    /** 平台设备互联对象转换 */
    transfer2DeviceLink(data: unknown): unknown;
    /** 通过设备 id 获取设备互联信息 */
    getDeviceLink(deviceId: string): Promise<unknown | undefined>;
    /** 初始化设备字段与表单字段映射 */
    initDevice2FormFieldMap(deviceLink: unknown): unknown[];
}
/**
 * 与主工程 form-tmpl-config 对齐的契约（word 包仅保留类型，实现由主工程注入）。
 */
export interface IFormTmplConfigController {
    TmplUtil: IDeviceLinkTmplUtil;
    /** 设备连接器 */
    deviceConnector: IDeviceConnector;
    /** 存储响应式变量 */
    state: {
        /** 模板列表 */
        tmpls: unknown[];
        /** 运行中的模板，目前是 mqtt 模板 */
        runningTmpls: unknown[];
        /** IOT 权限 */
        IOTPermission: boolean;
        /** OCR 权限 */
        OCRPermission: boolean;
    };
    /** 表单模板 id */
    tmplId: string;
    /** 是否手动模式，手动模式不触发接口 */
    isManual: boolean;
    /**
     * 初始化权限
     */
    initPermissions(): Promise<void>;
    /**
     * 初始化
     */
    init(opts: {
        tmplId: string;
        isManual?: boolean;
    }): Promise<void>;
    /**
     * 设置配置字符串
     */
    setConfigStr(configStr?: string): void;
    /**
     * 获取配置字符串
     */
    getConfigStr(): string;
    /**
     * 保存数据
     */
    save(): Promise<void>;
    /**
     * 刷新数据
     */
    refresh(): Promise<void>;
    /**
     * 添加或更新模板
     */
    createOrUpdate(tmpl: unknown): Promise<void>;
    /**
     * 缓存运行中的模板
     */
    cacheRunningTmpl(tmpl: unknown): void;
    /**
     * 断开连接
     */
    disconnect(tmpl: unknown): void;
}
export {};
