import FetchResult from '../../common/models/FetchResult'; /** * Interface for accessing the underlying CAS (Content Addressable Store). * This interface is mainly useful for creating a mock CAS for testing purposes. */ export default interface ICas { /** * Writes the given content to CAS. * @returns The SHA256 hash in base64url encoding which represents the address of the content. */ write (content: Buffer): Promise; /** * Reads the content of the given address in CAS. * @param maxSizeInBytes The maximum allowed size limit of the content. * @returns The fetch result containg the content buffer if found. * The result `code` is set to `FetchResultCode.MaxSizeExceeded` if the content exceeds the specified max size. */ read (address: string, maxSizeInBytes: number): Promise; }