import { Injector } from '@farris/devkit-vue';

export declare class RenderEngineService {
    private injector;
    /**
     * 渲染引擎
     */
    private renderEngine;
    /**
     * 构造函数
     * @param injector 注入器（模块级）
     */
    constructor(injector: Injector);
    /**
     * 使用组件Id获取组件实例
     * @param componentId
     */
    getComponentById(componentId: string): any;
    /**
     * 更新组件schema
     * @param componentId 组件标识
     * @param partialSchema
     */
    setSchema(componentId: string, partialSchema: Record<string, any>): void;
    /**
     * 获取组件schema
     * @param componentId 组件标识
     * @returns
     */
    getSchema(componentId: string): Record<string, any>;
    /**
     * 更新组件属性
     * @param componentId 组件标识
     * @param props 组件属性
     */
    setProps(componentId: string, props: Record<string, any>): void;
    /**
     * 获取组件属性
     * @param componentId 组件标识
     * @returns
     */
    getProps(componentId: string): any;
    getControlValue(controlId: string): any;
    /**
     * 获取组件实例
     */
    getComponentInstance(componentId: string): any;
}
