import { IVariable } from "../types";
/**
 * 数据源工具类
 */
export declare class DataSourceUtils {
    static replaceURLVariables(url: string): string;
    static replaceObjectVariables(obj: any): any;
    static replaceStringVariables(str: string): string;
    static getURLVariableNames(url: string): string[];
    static getObjectVariableNames(obj: any): string[];
    static getStringVariableNames(str: string): string[];
    /**
     * 获取环境变量
     * @returns 环境变量
     */
    static getEnvironments(): {
        envName: string;
        envBaseUrl: string;
    };
    /**
     * 设置环境变量
     * @param environments 环境变量
     */
    static setEnvironments(environments: any[]): void;
    /**
     * 获取变量数据
     * @returns 变量数据
     */
    static getVariables(): any[];
    /**
     * 设置变量数据
     * @param variable 变量数据
     */
    static setVariables(variable: any[]): void;
    /**
     *
     * @param id
     * @returns
     */
    static getVariableById(id: string): any;
    /**
     *
     * @param name
     * @returns
     */
    static getVariableByName(name: string): any;
    /**
     *
     * @param name
     * @returns
     */
    static getVariableValueByName(name: string): any;
    /**
     *
     * @param name
     * @returns
     */
    static getVariableInitialStateByName(name: string): any;
    /**
     * 设置变量数据
     * @param id 变量 ID
     * @param variable 变量数据
     */
    static setVariableById(variable: any, value: any, updateWidget?: boolean): void;
    /**
     * 新增变量
     * @param data
     */
    static addVariable: (variable: any) => void;
    /**
     * 更新变量
     * @param data
     */
    static updateVariable: (variable: any) => void;
    /**
     * 更新变量
     * @param data
     */
    static deleteVariableById: (id: any) => void;
    /**
     * 检查 WebSocket 是否已存在且有效
     * @param wsInstances WebSocket 实例
     * @param tId WebSocket 实例的 ID
     * @param sourceId WebSocket 实例的源 ID
     * @returns 是否有效
     */
    static hasValidWebSocket(wsInstances: any, tId: string, sourceId: string): boolean;
    /**
     * 只在必要时清理 WebSocket 连接
     * @param wsInstances WebSocket 实例
     * @param sourceIds 源 ID
     * @param tId WebSocket 实例的 ID
     */
    static cleanupPreviousWebSockets(wsInstances: any, sourceIds: string[], tId: string): void;
    /**
     * 使用 Function 构造函数获取对象中的嵌套值（更简洁但安全性较低）
     * @param obj 源对象
     * @param path 路径字符串，例如 ".a[0].value"
     * @returns 获取到的值，如果路径不存在则返回 undefined
     */
    static getNestedValue(obj: any, path: string): any;
    /**
     * 从路径字符串中提取变量名
     * @param path 路径字符串，例如 "测试.test" 或 "333[0].aa"
     * @returns 提取出的变量名
     */
    static extractVariableName(path: string): string;
    /**
     * 初始化所有变量
     * @param variableData
     * @returns
     */
    static executeAllVariable(variableData: IVariable[]): void;
    /**
     * 返回空数据
     * @param id 数据源 ID
     * @returns 空数据
     */
    static noneData(id: string): {
        id: string;
        finalKeyData: {
            id: string;
            data: any;
        };
        finalUserData: {
            id: string;
            data: any;
        };
        filteredData: any;
        rawData: any;
        noMappingData: any;
    };
}
