import { ActorRefFrom } from 'xstate';
import { FileUploadConfig } from '../utils';
import { FileUploadMachine } from './file-upload';

export type FileItemRef = ActorRefFrom<FileUploadMachine>;
export type AnyFileList = File | File[] | FileList;
export type MultipleFilesUploadContext = {
    progress: number | null;
    files: FileItemRef[];
    loaded: number;
    total: number;
};
export type MultipleFilesUploadEvents = {
    type: 'ADD';
    files: AnyFileList;
    bucketId?: string;
} | ({
    type: 'UPLOAD';
    files?: AnyFileList;
    bucketId?: string;
} & FileUploadConfig) | {
    type: 'UPLOAD_PROGRESS';
    additions: number;
} | {
    type: 'UPLOAD_DONE';
} | {
    type: 'UPLOAD_ERROR';
} | {
    type: 'CANCEL';
} | {
    type: 'REMOVE';
} | {
    type: 'CLEAR';
};
export type MultipleFilesUploadMachine = ReturnType<typeof createMultipleFilesUploadMachine>;
export declare const createMultipleFilesUploadMachine: () => import('xstate').StateMachine<MultipleFilesUploadContext, any, {
    type: "ADD";
    files: AnyFileList;
    bucketId?: string;
} | ({
    type: "UPLOAD";
    files?: AnyFileList;
    bucketId?: string;
} & FileUploadConfig) | {
    type: "UPLOAD_PROGRESS";
    additions: number;
} | {
    type: "UPLOAD_DONE";
} | {
    type: "UPLOAD_ERROR";
} | {
    type: "CANCEL";
} | {
    type: "REMOVE";
} | {
    type: "CLEAR";
}, {
    value: any;
    context: MultipleFilesUploadContext;
}, import('xstate').BaseActionObject, import('xstate').ServiceMap, import('xstate').ResolveTypegenMeta<import('./multiple-files-upload.typegen').Typegen0, {
    type: "ADD";
    files: AnyFileList;
    bucketId?: string;
} | ({
    type: "UPLOAD";
    files?: AnyFileList;
    bucketId?: string;
} & FileUploadConfig) | {
    type: "UPLOAD_PROGRESS";
    additions: number;
} | {
    type: "UPLOAD_DONE";
} | {
    type: "UPLOAD_ERROR";
} | {
    type: "CANCEL";
} | {
    type: "REMOVE";
} | {
    type: "CLEAR";
}, import('xstate').BaseActionObject, import('xstate').ServiceMap>>;
//# sourceMappingURL=multiple-files-upload.d.ts.map