import { WidgetType } from '../widgets';
export declare const createWidget: (type: WidgetType) => {
    id: string;
    type: "textarea" | "button" | "file" | "resume" | "work" | "sort" | "basicInput" | "fillBlank" | "emailInput" | "idCardInput" | "shortAnswer" | "phoneInput" | "numberInput" | "nameInput" | "companyInput" | "departmentInput" | "positionInput" | "ageInput" | "basicSelect" | "multiSelect" | "businessSelect" | "nationSelect" | "regionSelect" | "rate" | "date" | "basicRadio" | "checkbox" | "imgRadio" | "imgCheckbox" | "occupationRadio" | "sexRadio" | "educationRadio" | "ageRadio" | "geolocation" | "mapNavigation" | "carousel" | "pageHeader" | "contactUs" | "pagination" | "description" | "eduRadio" | "fillBlank2" | "shortAnswer2" | "numberFillBlank" | "eduCheckbox" | "eduJudgement" | "eduImgRadio" | "eduImgCheckbox" | "eduSelect" | "appoint" | "gainWithPic" | "gainWithoutPic" | "groupTitle" | "preparerNameInput" | "preparerIdCardInput" | "preparerPhoneInput" | "preparerWorkIdInput" | "watermark" | "location" | "checkEntry" | "image" | "basicTable" | "dynamicTable" | "idCardOcr" | "bankCardOcr" | "vehicleLicenseOcr" | "driverLicenseOcr" | "businessLicenseOcr" | "specialCertificateOcr" | "vatInvoiceOcr" | "customTableOcr";
    attrs: any;
};
/**
 * 表单组件数据
 */
export declare const widgets: import('vue').Ref<{
    id: string;
    type: WidgetType;
    attrs: AnyRecord;
}[]>;
/**
 * 组件属性验证结果
 */
export declare const errorWidgets: import('vue').Ref<Record<string, StringRecord>>;
export declare const onAfterAddWidget: (addedWidget: Widget) => void;
/**
 * 添加组件到列表（拖拽添加在WidgetList.vue中）
 * @param type 组件类型
 * @param idx 插入位置
 * @returns 新添加的组件
 */
export declare const addWidget: (type: WidgetType, idx?: number) => {
    id: string;
    type: "textarea" | "button" | "file" | "resume" | "work" | "sort" | "basicInput" | "fillBlank" | "emailInput" | "idCardInput" | "shortAnswer" | "phoneInput" | "numberInput" | "nameInput" | "companyInput" | "departmentInput" | "positionInput" | "ageInput" | "basicSelect" | "multiSelect" | "businessSelect" | "nationSelect" | "regionSelect" | "rate" | "date" | "basicRadio" | "checkbox" | "imgRadio" | "imgCheckbox" | "occupationRadio" | "sexRadio" | "educationRadio" | "ageRadio" | "geolocation" | "mapNavigation" | "carousel" | "pageHeader" | "contactUs" | "pagination" | "description" | "eduRadio" | "fillBlank2" | "shortAnswer2" | "numberFillBlank" | "eduCheckbox" | "eduJudgement" | "eduImgRadio" | "eduImgCheckbox" | "eduSelect" | "appoint" | "gainWithPic" | "gainWithoutPic" | "groupTitle" | "preparerNameInput" | "preparerIdCardInput" | "preparerPhoneInput" | "preparerWorkIdInput" | "watermark" | "location" | "checkEntry" | "image" | "basicTable" | "dynamicTable" | "idCardOcr" | "bankCardOcr" | "vehicleLicenseOcr" | "driverLicenseOcr" | "businessLicenseOcr" | "specialCertificateOcr" | "vatInvoiceOcr" | "customTableOcr";
    attrs: any;
};
export declare const deleteWidget: (id: string) => void;
export declare const duplicateWidget: (id: string) => void;
export declare const getCompByType: (type: WidgetType) => import('vue').Component;
export type HeaderWidget = TWidget<"pageHeader">;
export declare const headerWidget: import('vue').Ref<{
    type: "pageHeader";
    attrs: {
        showImage: boolean;
        align: string;
        title: string;
        desc: string;
        headerImage: string;
    };
    id: string;
}>;
type ContactUsWidget = TWidget<"contactUs">;
export declare const contactUsWidget: import('vue').Ref<ContactUsWidget | undefined>;
interface ApplyOptions {
    widgets: Widget[];
    header: HeaderWidget;
    contactUs?: ContactUsWidget;
}
export declare const applyWidgets: (options: ApplyOptions) => void;
export declare const resetWidgets: () => void;
export declare const getWidgets: () => ({
    type: "pageHeader";
    attrs: {
        showImage: boolean;
        align: string;
        title: string;
        desc: string;
        headerImage: string;
    };
    id: string;
} | {
    id: string;
    type: WidgetType;
    attrs: AnyRecord;
} | ContactUsWidget)[];
export declare const saveOldWidgets: () => void;
export declare const isWidgetsChanged: () => boolean;
export declare const resetWidgetsOldData: () => void;
export {};
