import type { InjectionKey } from 'vue';
import type { UserInfo, CurrentRow, Role, RecordString } from '../../edit-page-layout';
type Row = {
    currentRow: CurrentRow;
    userInfo: UserInfo;
    businessType: string;
    role?: Role;
    token?: string;
};
export declare function getRemoteJsFilePath({ currentRow, userInfo, businessType, role, token }: Row): string;
/**
 * description: 动态加载JS文件
 * param {string} file JS文件地址
 * return {*}
 */
export declare function loadJS(file: string): Promise<unknown>;
/**
 * description: 工具函数 配套 InjectionKey 使用
 * param {InjectionKey} key
 * param {T} defaultValue
 * return {*}
 */
export declare function requireInjection<T>(key: InjectionKey<T>, defaultValue?: T): NonNullable<T>;
/**
 * 从对象中获取链式路径的值
 * @param {object} obj - 源数据对象（如userInfo）
 * @param {string} chain - 链式路径（如"address.city"）
 * @returns {any} 链式路径对应的值，不存在则返回 undefined
 */
export declare function getChainValue(obj: RecordString, chain: string): RecordString;
export declare const TEMPLATE_REGEXP: RegExp;
/**
 * 模板渲染函数
 * @param {string} template - 带{{变量}}或{{date:格式}}的模板字符串
 * @param {object} userInfo - 登录接口返回的用户数据对象
 * @returns {string} 渲染后的最终字符串
 */
export declare function renderTemplate(template: string, userInfo: RecordString): string;
export {};
