import type { FC, Ref } from 'react';
import type { ForwardProps, BaseProps } from '../../types';
import type { FileVisualProps } from './FileVisual';
export interface FileItemProps extends BaseProps {
    /** Unique id for item. */
    id: string;
    /** Name of the file. */
    name: string;
    /** A string to be used as an image src for a attachment thumbnail. Falls back to a provided icon or the default attachment icon. */
    thumbnail?: FileVisualProps['thumbnail'];
    /** File extension. Use 'url' for link */
    format?: string;
    /**
     * Used for a smaller sized FileItem.
     * @default false
     */
    compact?: boolean;
    /** When passed, will render a single icon button for yet to be or in progress uploads. Use this action to trigger xhr request termination. */
    onCancel?: (id: FileItemProps['id']) => void;
    /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */
    onEdit?: (id: FileItemProps['id']) => void;
    /** When passed, will be called on click of the name. Passes file id as the parameter. */
    onPreview?: (id: FileItemProps['id']) => void;
    /**
     * Moves preview option to actions menu.
     * To be used only in compact mode of single file input when rendered in a table
     */
    previewFromActions?: boolean;
    /** When passed, will render a single icon button or within a MenuButton if other actions are defined. Passes file id as the parameter. */
    onDownload?: (id: FileItemProps['id']) => void;
    /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */
    onDelete?: (id: FileItemProps['id']) => void;
    /** If the attachment is in an upload state, pass progress as a number between 0-100 representing the percentage of progress. */
    progress?: number;
    /** Set if there is an error uploading the file. Applies error styling to the meta string passed. */
    error?: string;
    /** Setting the disable state */
    disabled?: boolean;
    /** Ref for the wrapping element. */
    ref?: Ref<HTMLDivElement>;
}
export declare const StyledFileItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
    compactMode: FileItemProps['compact'];
    isDisabled?: FileItemProps['disabled'];
}, never>;
declare const FileItem: FC<FileItemProps & ForwardProps>;
export default FileItem;
//# sourceMappingURL=FileItem.d.ts.map