export interface SASUploadedFile {
    type: string;
    name: string;
    size: number;
    location: string;
    id: string;
}
export interface SASObjectAttachedFile extends SASUploadedFile {
    category: string;
    description?: string;
    displayOrder?: number;
    uploadedAt?: string;
    uploadedBy?: string;
    version?: number;
    link?: string;
    isLink?: boolean;
}
export interface FileChange {
    changeType: FileOperationMethod;
    newFiles: SASObjectAttachedFile[];
    changedFile?: SASObjectAttachedFile;
}
export declare enum FileOperationMethod {
    CREATE = "CREATE",
    UPDATE = "UPDATE",
    DELETE = "DELETE"
}
export interface FileOperation {
    method: FileOperationMethod;
    body?: SASObjectAttachedFile;
    id?: string;
}
/**
 * This API provides functionality related to uploading files.
 *
 * Accessed from the window at `window.sas.vi.file`.
 *
 * @example window.sas.vi.file.uploadToVIFolder(file, "fileName")
 * @category API
 */
export interface FileApi {
    /**
     * @method
     * @description Uploads the file to the SAS Visual Investigator folder without attaching it to an object.
     * @param file {File} File to be uploaded.
     * @param [fileName] {string} Name to give to the file to upload.
     * @returns Promise containing the uploaded file.
     */
    uploadToViFolder(file: File, fileName?: string): Promise<SASUploadedFile>;
}
