import { Ref, SetupContext } from 'vue';
import { UploaderProps } from '../uploader.props';
import { FUploadFileExtend, FUploadPreviewColumn, UploadOutput } from './type';
import FFileSelect from '../components/file-select.component';
import { UploaderService } from '../service/uploader-service';
export declare function useUploader(props: UploaderProps, ctx: SetupContext, fileSelectRef: Ref<typeof FFileSelect | null>): {
    disabled: Ref<any, any>;
    uploadVisible: Ref<any, any>;
    uploadDisabled: Ref<any, any>;
    downloadButtonDisable: Ref<any, any>;
    previewVisible: Ref<any, any>;
    previewColumns: Ref<any, any>;
    uploadFiles: Ref<UploadOutput[], UploadOutput[]>;
    innerFileInfos: Ref<any[], any[]>;
    previewEnableMulti: Ref<any, any>;
    previewMultiSelectedLength: import("vue").ComputedRef<number>;
    previewSelectAllBtnChecked: Ref<boolean, boolean>;
    uploadEnableMulti: Ref<any, any>;
    previewCurrentId: Ref<string, string>;
    multiFileRemoveHandler: (event: Event) => void;
    previewMultiSelectChangeHandler: (selectInfo: any) => void;
    fileMultiDownloadHandler: (event: Event) => void;
    selectOrCancelAllHandler: (selectInfo: any) => void;
    hasColumnHtmlFunc: (columnInfo: FUploadPreviewColumn, type?: string) => boolean;
    showPreviewStateColumn: (columnInfo: FUploadPreviewColumn) => boolean;
    rowSelectedHandler: (event: Event | null, fileInfo: FUploadFileExtend) => void;
    fileDownloadHandler: (event: Event, fileInfo: FUploadFileExtend) => void;
    filePreviewHandler: (event: Event, fileInfo: FUploadFileExtend) => void;
    fileRemoveHandler: (ev: Event, fileInfo: FUploadFileExtend, uploaderService: UploaderService) => void;
    handleStateChange: (output: UploadOutput) => void;
};
