import { HTMLAttributes, default as React } from 'react';
export declare enum FileUploadState {
Uploading = "uploading",
Processing = "processing",
Completed = "completed",
Error = "error"
}
export declare enum FileUploadErrorType {
Unexpected = "unexpected",
Unsupported = "unsupported",
Unreadable = "unreadable",
InvalidStructure = "invalid-structure",
Empty = "empty",
TooLarge = "too-large",
NoProductsFound = "no-products-found"
}
export interface FileUploadStatusProps extends HTMLAttributes {
/**
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
*/
testId?: string;
/**
* The file being uploaded.
*/
file: File;
/**
* Current upload state.
* @default 'uploading'
*/
state?: FileUploadState;
/**
* Type of error when state is 'error'.
*/
errorType?: FileUploadErrorType;
/**
* Custom error message. If provided, overrides the default error message for the errorType.
*/
errorMessage?: string;
/**
* Callback when the remove/cancel button is clicked.
*/
onRemove?: () => void;
/**
* Callback when the search button is clicked (only shown when state is 'completed').
*/
onSearch?: () => void;
/**
* Callback when download template is clicked (only shown when state is 'error').
*/
onDownloadTemplate?: () => void;
/**
* Callback when select file is clicked (only shown when state is 'error').
*/
onSelectFile?: () => void;
/**
* Aria-label for the remove button (e.g. from CMS).
*/
removeButtonAriaLabel: string;
/**
* Label for the search button when state is 'completed' (e.g. from CMS).
*/
searchButtonLabel: string;
/**
* Label for the download template button (e.g. from CMS).
*/
downloadTemplateButtonLabel: string;
/**
* Label for the select file button (e.g. from CMS).
*/
selectFileButtonLabel: string;
/**
* Error messages per error type (e.g. from CMS). Required when state is Error to show messages.
*/
errorMessages: Partial>;
/**
* Status text when state is Uploading (e.g. from CMS).
*/
uploadingStatusText: string;
/**
* Status text when state is Processing/polling (e.g. from CMS).
* @default 'Importing...'
*/
processingStatusText?: string;
/**
* Status text when state is Completed (e.g. from CMS). May include file size.
*/
completedStatusText: string;
/**
* Custom file name display (optional).
*/
fileName?: string;
}
declare const FileUploadStatus: ({ testId, file, state, errorType, errorMessage, onRemove, onSearch, onDownloadTemplate, onSelectFile, removeButtonAriaLabel, searchButtonLabel, downloadTemplateButtonLabel, selectFileButtonLabel, errorMessages, uploadingStatusText, processingStatusText, completedStatusText, fileName, ...otherProps }: FileUploadStatusProps) => React.JSX.Element;
export default FileUploadStatus;
//# sourceMappingURL=FileUploadStatus.d.ts.map