/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Subscription } from 'rxjs';
import { FileState } from './file-state';
/**
 * Contains information which is related to the selected file.
 */
export interface FileInfo {
    /**
     * The unique identifier of the file or the batch of files.
     */
    uid?: string;
    /**
     * The file name.
     */
    name: string;
    /**
     * The file extension including the leading dot&mdash;for example, `.jpg`, `.png`, or other.
     */
    extension?: string;
    /**
     * The file size in bytes.
     */
    size?: number;
    /**
     * An in-memory representation of the file.
     */
    rawFile?: File;
    /**
     * A list containing the validation errors (if any).
     */
    validationErrors?: Array<string>;
    /**
     * The current state of the file&mdash;`Failed`, `Selected`, `Uploaded`, or `Uploading`.
     * `Initial` is a special value for `FileState`.
     * It is automatically applied to initial files without you having to explicitly set their state.
     */
    state?: FileState;
    /**
     * The observable subscription of the upload request.
     */
    httpSubscription?: Subscription;
}
