import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server'; import { type Asset, type AssetFilter, type AssetFolder, DosGatoService, AssetResponse, type DownloadsFilter, type AssetResize, AssetFolderResponse, AssetsResponse } from '../internal.js'; export declare class AssetServiceInternal extends BaseService { find(filter: AssetFilter): Promise; findById(id: string): Promise; findByInternalId(id: number): Promise; findByIds(ids: string[]): Promise; findByLinkIds(linkIds: string[]): Promise; findByFolder(folder: AssetFolder, filter?: AssetFilter): Promise; findByFolderInternalId(folderInternalId: number, filter?: AssetFilter): Promise; findByFolders(folders: AssetFolder[], filter?: AssetFilter): Promise; getAncestors(asset: Asset): Promise; getSite(asset: Asset): Promise; getPagetree(asset: Asset): Promise; getPath(asset: Asset): Promise; getData(asset: Asset, version?: number): Promise; processAssetFilters(filter?: AssetFilter): Promise; } export declare class AssetService extends DosGatoService { raw: AssetServiceInternal; postFilter(assets: Asset[], filter?: AssetFilter): Promise; find(filter: AssetFilter): Promise; findByFolder(folder: AssetFolder): Promise; findByFolders(folders: AssetFolder[]): Promise; getAncestors(asset: Asset): Promise; getPath(asset: Asset): Promise; getResizes(asset: Asset): Promise; getResize(resizeId: string): Promise; getThumbnail(asset: Asset): Promise; getLatestDownload(asset: Asset): Promise | import("luxon").DateTime>; getData(asset: Asset): Promise<{ legacyId?: string; shasum: string; uploadedFilename: string; }>; getCorrupted(asset: Asset): Promise; getDownloads(asset: Asset, filter?: DownloadsFilter): Promise; getResizeDownloads(resize: AssetResize, filter?: DownloadsFilter): Promise; move(folderId: string, assetIds?: string[], folderIds?: string[]): Promise; rename(assetId: string, name: string, validateOnly?: boolean): Promise; update(assetId: string, data: any, validateOnly?: boolean): Promise; copy(folderId: string, assetIds?: string[], folderIds?: string[]): Promise; delete(dataId: string): Promise; deleteAssets(dataIds: string[]): Promise; finalizeDeletion(dataIds: string[]): Promise; undelete(dataIds: string[]): Promise; mayViewManagerUI(): boolean; /** * assets must be viewable by any editor in case another editor with greater permissions linked to an asset in a chooser - * we don't want the dialog to appear broken * * mayViewForEdit will control whether the selected asset is still available to be selected in the chooser, so if they * can't see the currently selected asset they will just get a list of folders and will have to cancel the chooser to keep it */ mayView(asset: Asset): boolean; mayViewIndividual(asset: Asset): boolean; /** * All assets in the system are viewable by any editor, but we don't want every editor to have to browse the entire system when * managing/choosing assets. So this can be used to filter the selection for an editor's convenience. */ mayViewForEdit(asset: Asset): boolean; mayUpdate(asset: Asset): boolean; mayMove(asset: Asset): boolean; mayDelete(asset: Asset): boolean; mayUndelete(asset: Asset): boolean; }