/**
 * @internal
 */
export declare const UploadItemStatus: {
    readonly Idle: "idle";
    readonly Uploading: "uploading";
    readonly Success: "success";
    readonly Error: "error";
};
/**
 * @internal
 */
export type UploadItemStatus = (typeof UploadItemStatus)[keyof typeof UploadItemStatus];
/**
 * @internal
 */
export declare const FileValidationErrorCode: {
    readonly InvalidFileType: "invalidFileType";
    readonly TooManyFiles: "tooManyFiles";
    readonly FileTooLarge: "fileTooLarge";
};
/**
 * @internal
 */
export type FileValidationErrorCode = (typeof FileValidationErrorCode)[keyof typeof FileValidationErrorCode];
/**
 * @internal
 */
export interface IFileValidationRules {
    /**
     * Comma separated list of allowed file types.
     * For example: ".txt,image/*,text/csv"
     */
    allowedFileTypes?: string;
    maxFileSizeInBytes?: number;
}
/**
 * @internal
 */
export interface IFileValidationResult {
    isValid: boolean;
    errorCode?: FileValidationErrorCode;
}
/**
 * @internal
 */
export interface IFileRejection {
    file: File;
    validation: IFileValidationResult;
}
/**
 * @internal
 */
export interface IUploadFileItem {
    id: string;
    file: File;
    status: UploadItemStatus;
    errorMessage?: string;
}
/**
 * @internal
 */
export interface IUploadActionCallbacks {
    onRemoveFile?: (fileId: string) => void;
    onRetryFile?: (fileId: string) => void;
}
//# sourceMappingURL=types.d.ts.map