import { SharedModels } from '../shared/shared-models'; import { SharedContracts, AssetContracts } from '../../contracts'; export declare namespace AssetModels { class Asset implements SharedModels.IBaseModel { id: string; fileName: string; title: string | null; imageWidth: number | null; imageHeight: number | null; size: number; type: string; fileReference: AssetFileReference; descriptions: AssetFileDescription[]; externalId?: string; lastModified: Date; url: string; codename: string; collection?: IAssetCollectionReferenceObject; folder?: SharedContracts.IReferenceObjectContract; elements?: IAssetElement[]; _raw: AssetContracts.IAssetModelContract; constructor(data: { id: string; fileName: string; title: string | null; imageWidth: number | null; imageHeight: number | null; size: number; type: string; fileReference: AssetFileReference; descriptions: AssetFileDescription[]; externalId?: string; lastModified: Date; url: string; codename: string; collection?: IAssetCollectionReferenceObject; folder?: SharedContracts.IReferenceObjectContract; elements?: IAssetElement[]; _raw: AssetContracts.IAssetModelContract; }); } interface IAssetElement { element: SharedContracts.IIdReferenceContract; value: SharedContracts.IIdReferenceContract[]; } interface IAssetFileReference { id: string; type: 'internal'; } class AssetFileReference implements IAssetFileReference { id: string; type: 'internal'; constructor(data: { id: string; type: 'internal'; }); } interface IAssetFileDescription { language: SharedContracts.IReferenceObjectContract; description: string; } interface IAssetCollectionReferenceObject { reference: SharedModels.IReferenceObject | null; } class AssetFileDescription { language: SharedModels.ReferenceObject; description: string | null; constructor(data: { language: SharedModels.ReferenceObject; description: string | null; }); } interface IUploadBinaryFileRequestData { binaryData: any; contentType: string; contentLength?: number; filename: string; } /** * Currently only reference to taxonomy terms are supported. In future more elements will be allowed */ type IAssetElementValueType = IAssetElementData; interface IAssetElementData { element: SharedContracts.IReferenceObjectContract; value: TValue; } interface IAddAssetRequestData { file_reference: IAssetFileReference; title?: string; external_id?: string; descriptions?: IAssetFileDescription[]; folder?: SharedContracts.IReferenceObjectContract; elements?: IAssetElementValueType[]; collection?: IAssetCollectionReferenceObject; codename?: string; } interface IUpsertAssetRequestData { descriptions: IAssetFileDescription[]; title?: string; file_reference?: IAssetFileReference; folder?: SharedContracts.IReferenceObjectContract; collection?: IAssetCollectionReferenceObject; elements?: IAssetElementValueType[]; } interface IUploadAssetFromUrlRequestData { asset: { title?: string; external_id?: string; descriptions?: IAssetFileDescription[]; folder?: SharedContracts.IReferenceObjectContract; elements?: IAssetElementValueType[]; collection?: IAssetCollectionReferenceObject; codename?: string; }; binaryFile: { filename: string; }; fileUrl: string; } }