import { Module, ViewModel, ViewModelState } from '@farris/devkit-vue';
import { RenderEngineService } from './render-engine.service';

/**
 * 弹窗服务
 */
export declare class DialogService {
    /**
     * 开发框架
     */
    private devkit;
    /**
     * 模块
     */
    private module;
    /**
     * 视图模型
     */
    private viewModel;
    /**
     * 渲染引擎
     */
    private renderEngineService;
    /**
     * 构造函数
     */
    constructor(viewModel: ViewModel<ViewModelState>, renderEngineService: RenderEngineService);
    /**
     * 打开弹窗
     * @param config 弹窗配置，支持的配置报错：{ title, width, height }
     * @param modalId 弹窗容器ID
     * @param params 弹窗初始化参数
     * @param callback 弹窗打开后的回调方法
     */
    openModal(config: string | ModalConfig, modalId: string, params: string | Record<string, any>, callback?: (modalRef: any) => any): void;
    /**
     * 获取弹窗内的表单模块
     */
    getModalModule(modalId: string): Module;
    /**
     * 根据ID打开帮助
     */
    openLookup(config: string | LookupConfig, lookupId: string): void;
    /**
     * 打开类帮助弹窗
     * @param frameId 列表数据所在的组件ID
     * @param params 弹窗初始化参数
     * @param configs 弹窗配置
     */
    openHelpModal(frameId: string, params: string | Record<string, any>, configs?: string | Record<string, any>): void;
    /**
     * 打开带回调的弹窗
     * @param frameId 列表数据所在的组件ID
     * @param params 弹窗初始化参数
     * @param configs 弹窗配置
     */
    openCallbackableModal(frameId: string, params?: string | Record<string, any>, configs?: string | Record<string, any>): void;
    /**
     * 弹窗确认按钮点击处理
     */
    confirm(): void;
    /**
     * 弹窗取消按钮点击处理
     */
    cancel(event?: any): void;
    /**
     * 关闭弹窗
     */
    closeModal(): void;
    /**
     * 构造弹窗属性
     */
    private buildModalProps;
    /**
     * 构造帮助属性
     */
    private buildLookupProps;
    /**
     * 标准化对象
     */
    private normalizeConfig;
    /**
     * 移除对象中值为undefined的属性
     */
    private stripUndefinedProps;
    /**
     * 设置弹窗参数
     */
    private setModalParams;
    /**
     * 根据弹窗ID获取弹窗内的模块ID
     */
    private getModalModuleId;
}
/**
 * 弹窗配置
 */
export interface ModalConfig {
    /**
     * 弹窗标题
     */
    title?: string;
    /**
     * 弹窗宽度
     */
    width?: number;
    /**
     * 弹窗高度
     */
    height?: number;
}
/**
 * 帮助配置
 */
export interface LookupConfig {
    /**
     * 帮助标题
     */
    title?: string;
}
