import { ExtractPropTypes, PropType, Ref } from 'vue';
import type { UserInfo, CurrentRow, ColumnItem, LayoutConfig, RecordString } from '../../edit-page-layout';
import type { UploadFile } from 'ant-design-vue';
export interface InitializeConfig {
    groupCode: string;
    pageData?: Ref<RecordString>;
    layoutConfig?: Ref<LayoutConfig>;
    role?: string;
    path?: string;
    operationButton?: string[];
    userInfo?: UserInfo;
    [key: string]: unknown;
}
export interface Data {
    businessType: string;
    headId: string;
    [key: string]: unknown;
}
export interface FilePropsType {
    data: Data;
    action?: string;
    [key: string]: unknown;
}
export interface FileTypeList {
    title: string;
    value: string;
    [key: string]: unknown;
}
export interface PayloadType {
    pageData: RecordString;
    row: RecordString;
    rowIndex: number;
}
export interface ColumnItemExtend {
    params?: RecordString;
    url?: string;
    maxCount?: number;
    maxNumber?: number;
    isGridUpload?: boolean;
    [key: string]: unknown;
    [key: number]: unknown;
    handleBefore: (payload: PayloadType) => Promise<PayloadType>;
}
export interface ColumnItemWithExtend extends ColumnItem {
    extend?: ColumnItemExtend;
    row: RecordString;
    idx: number;
}
export type VxeItemFileUpload = ColumnItemWithExtend;
export interface FileDataType {
    fileType: string;
    fileList: UploadFile[];
    itemNumber: string;
    fileBelong: string;
    [key: string]: unknown;
    [key: number]: unknown;
}
export declare const uploadFilesProps: {
    readonly visible: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly dictCode: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly defaultFileType: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly requiredFileType: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly defaultFileBelong: {
        readonly type: StringConstructor;
        readonly default: "headId";
    };
    readonly limitSize: {
        readonly type: NumberConstructor;
        readonly default: 100;
    };
    readonly accept: {
        readonly type: StringConstructor;
        readonly default: ".doc, .docx, .xls, .xlsx, .ppt, .png, .jpg, .jpeg, .gif, .pptx, .pdf, .txt";
    };
    readonly acceptDictCode: {
        readonly type: StringConstructor;
        readonly default: "attachmentExtension";
    };
    readonly maxCount: {
        readonly type: NumberConstructor;
        readonly default: 0;
    };
    readonly userInfo: {
        readonly type: PropType<UserInfo>;
        readonly default: () => {};
    };
    readonly data: {
        readonly type: PropType<Data>;
        readonly default: () => {};
    };
    readonly isOss: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly isGridUpload: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly role: {
        readonly type: PropType<string>;
        readonly default: "purchase";
    };
    readonly action: {
        readonly type: StringConstructor;
        readonly default: "/attachment/purchaseAttachment/upload";
    };
    readonly currentRow: {
        readonly type: PropType<CurrentRow>;
        readonly default: () => {};
    };
    readonly itemNumberKey: {
        readonly type: StringConstructor;
        readonly default: "itemNumber";
    };
    readonly itemNumberLabel: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly itemNumberValueProp: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly itemNumberDefaultValue: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly property: {
        readonly type: StringConstructor;
        readonly default: "materialName";
    };
    readonly itemNumberSelectIndex: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly disabledItemNumber: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly itemInfo: {
        readonly type: PropType<RecordString[]>;
        readonly default: () => never[];
    };
    readonly fileTypeList: {
        readonly type: PropType<FileTypeList[]>;
        readonly default: () => never[];
    };
    readonly actionRoutePath: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly sourceNumberType: {
        readonly type: StringConstructor;
        readonly default: "";
    };
    readonly 'onUpdate:visible': {
        type: PropType<((value: boolean) => void) | ((value: boolean) => void)[]>;
        default: unknown;
    };
    readonly onConfirmBeforeUpload: {
        readonly type: FunctionConstructor;
        readonly default: null;
    };
};
export type UploadFilesProps = ExtractPropTypes<typeof uploadFilesProps>;
