export interface Node { id: string; } export declare enum ItemType { File = "file", Folder = "folder", WebLink = "web_link" } export interface User { id: string; name?: string; type?: string; } export declare enum UserRole { COOWNER = "COOWNER", EDITOR = "EDITOR", NONE = "NONE", OWNER = "OWNER", PREVIEWER = "PREVIEWER", PREVIEWERUPLOADER = "PREVIEWERUPLOADER", UPLOADER = "UPLOADER", VIEWER = "VIEWER", VIEWERUPLOADER = "VIEWERUPLOADER" } export declare enum UserState { USER = "USER", ANONYMOUS = "ANONYMOUS", CONSOLE = "CONSOLE", HIDDEN = "HIDDEN", UNKNOWN = "UNKNOWN" } export interface SharedLink { url?: string; } export interface FolderSync { enabled: boolean; } export interface FolderPermissions { canDownload: boolean; canUpload: boolean; canDelete: boolean; canRename: boolean; canShare: boolean; } export interface WeblinkPermissions { canDownload: boolean; canDelete: boolean; canRename: boolean; canShare: boolean; } export interface FolderPathCollectionEntry { id: string; name?: string; type: ItemType; } export interface FolderItemOrder { direction?: 'ASC' | 'DESC'; field?: string; } export interface ThumbnailUrLs { small?: string; medium?: string; large?: string; } export interface FileIntegrations { preview?: { url?: string; }; } export interface FileLock { id: string; type: string; createdBy?: User; createdAt?: string; expiresAt?: string; } export declare enum ArchiveType { ARCHIVE = "archive", FOLDER_ARCHIVE = "folder_archive", FILE = "file", WEBLINK = "web_link" } export declare enum ItemStatus { ACTIVE = "ACTIVE", DELETED = "DELETED", TRASHED = "TRASHED" } export declare enum ItemState { ACTIVE = "ACTIVE", TRASHED = "TRASHED", DELETION_PROCESSING = "DELETION_PROCESSING", PRESERVED = "PRESERVED", LANDFILLED = "LANDFILLED" } export interface Metadata { [enterpriseKey: string]: { [templateKey: string]: { [key: string]: string | string[] | number | undefined; }; }; } export interface CoreItem extends Node { createdAt?: string; description?: string; hasCollaborations?: boolean; iconType?: string; isExternallyOwned?: boolean; name?: string; ownedBy?: User; trashedAt?: string; type: ItemType; updatedAt?: string; updatedBy?: User; updatedByUserState?: UserState; isUserOwner?: boolean; isUserCoOwner?: boolean; canUserCreateWorkflow?: boolean; isSelfOrAncestorCollaborated?: boolean; isSelfCollaborated?: boolean; parent?: Folder; sharedLink?: SharedLink; archiveType?: ArchiveType; itemStatus?: ItemStatus; itemState?: ItemState; role?: UserRole; } export interface File extends CoreItem { extension?: string; size?: number; thumbnailURLs?: ThumbnailUrLs; contentCreatedAt?: string; contentUpdatedAt?: string; etag?: string; sha1?: string; integrations?: FileIntegrations; lock?: FileLock; metadata?: Metadata; } export interface Folder extends CoreItem { sync?: FolderSync; tags?: string[]; pathCollection?: FolderPathCollectionEntry[]; permissions?: FolderPermissions; metadata?: Metadata; } export interface Weblink extends CoreItem { url?: string; permissions?: WeblinkPermissions; } export type Item = File | Folder | Weblink;