import { ComputedRef, MaybeRef, Ref, ShallowRef } from 'vue';
import { DocInfo, DocModeType, EnginePublic } from '../../core';
import { DesignSuiteContext } from '../_register_/context/DesignSuiteContext';
export interface IDocProps {
    /** 文档实例id或者文档模板id */
    requestId: MaybeRef<string | undefined>;
    /** 批次号 */
    materialNo?: string;
    /** 查询条件 */
    requestQuery?: Record<string, any>;
}
interface IDeviceConfig {
    /** 默认的用户id */
    defaultUserId: string | undefined;
    /** 默认的部门id */
    defaultOrgId: string | undefined;
    /** 默认的物料查询条件 */
    defaultProductSearchFields: string;
}
export interface IDocTemplatePayload {
    /** 渲染模式类型 */
    renderModeType?: DocModeType;
}
export interface IDocInstancePayload {
    /** 是否是详情页面 */
    isDetailPage?: boolean | Function;
    /** 组件传进来的参数 */
    paramExtraProps?: Record<string, any>;
}
export interface IDocPayload extends IDocTemplatePayload, IDocInstancePayload {
    /** 工厂类型 */
    factoryType: 'template' | 'instance';
    /** 模型 key */
    modelKey?: ModelKey;
    /** 设备配置信息 */
    deviceConfig?: IDeviceConfig;
    /** 是否是模拟填报 */
    isMockReport: boolean;
    ctx: DesignSuiteContext;
}
export interface DocumentFactory {
    docEngine: ShallowRef<EnginePublic | null, EnginePublic | null>;
    docInfo: Ref<DocInfo>;
    selfInfo: Ref<any>;
    docInteraction: any;
    hasData: ComputedRef<boolean>;
    loading: ComputedRef<boolean>;
    updateDocumentCounter: () => void;
    getWordDocumentModelXmlJson: any;
}
export declare function useDocumentFactory(props: IDocProps, payload: IDocPayload): DocumentFactory;
export {};
