import type { Ref, SetupContext } from 'vue';
import type { ColumnItemWithExtend, VxeItemFileUpload } from '../../../upload-file';
import type { PageButtonDownLoad, PageButtonDeleteFileRow, PageButtonUploadType, RecordString, LayoutConfig } from '../../../edit-page-layout';
export default function useFileUpload(ctx: SetupContext, pageData: Ref<RecordString>, layoutConfig: Ref<LayoutConfig>, defaultValues: Ref<RecordString>): {
    btnObj: Ref<PageButtonUploadType | undefined>;
    itemConfigObj: Ref<ColumnItemWithExtend | undefined>;
    fileVisible: Ref<boolean>;
    fileProps: Ref<{
        readonly data?: {
            [x: string]: unknown;
            businessType: string;
            headId: string;
        } | undefined;
        readonly 'onUpdate:visible'?: ((value: boolean) => void) | ((value: boolean) => void)[] | undefined;
        readonly visible?: boolean | undefined;
        readonly currentRow?: {
            [x: string]: unknown;
            templateNumber: string;
            templateVersion: number;
            templateAccount: string;
            busAccount: string;
            elsAccount: string;
        } | undefined;
        readonly action?: string | undefined;
        readonly accept?: string | undefined;
        readonly dictCode?: string | undefined;
        readonly userInfo?: {
            [x: string]: unknown;
            elsAccount: string;
            subAccount: string;
            serivceUrl: string;
        } | undefined;
        readonly role?: string | undefined;
        readonly property?: string | undefined;
        readonly defaultFileType?: string | undefined;
        readonly requiredFileType?: boolean | undefined;
        readonly defaultFileBelong?: string | undefined;
        readonly limitSize?: number | undefined;
        readonly acceptDictCode?: string | undefined;
        readonly maxCount?: number | undefined;
        readonly isOss?: boolean | undefined;
        readonly isGridUpload?: boolean | undefined;
        readonly itemNumberKey?: string | undefined;
        readonly itemNumberLabel?: string | undefined;
        readonly itemNumberValueProp?: string | undefined;
        readonly itemNumberDefaultValue?: string | undefined;
        readonly itemNumberSelectIndex?: boolean | undefined;
        readonly disabledItemNumber?: boolean | undefined;
        readonly itemInfo?: RecordString[] | undefined;
        readonly fileTypeList?: {
            [x: string]: unknown;
            title: string;
            value: string;
        }[] | undefined;
        readonly actionRoutePath?: string | undefined;
        readonly sourceNumberType?: string | undefined;
        readonly onConfirmBeforeUpload?: Function | undefined;
    }>;
    handleDownLoadZip: (btn: PageButtonDownLoad) => void;
    handleDeleteFileRows: (btn: PageButtonDeleteFileRow) => void;
    handleOpenFileUpload: (btn: PageButtonUploadType) => void;
    handleOpenFileUploadItem: (itemConfig: VxeItemFileUpload) => void;
    handleChangeFiles: (fileResult: RecordString[]) => void;
};
