import type { AppLogger } from "@paroicms/internal-server-lib"; import type { ResizeRule, ScImageCompressionQualityPolicyStep } from "@paroicms/public-anywhere-lib"; import type { GetOriginalImage, ImageCacheOwnerTransaction, ImageVariant, ImageVariantStorage, ImageVariantWithBinary, NewVariantInput } from "./engine-types.js"; export interface ImageCacheEngine { getImageVariantWithBinary(options: { mediaId: string; mediaType: string; rawWidth: number; rawHeight: number; }): Promise; getImageVariantWithBinaryByOwner(options: { mediaId: string; mediaType: string; ownerHandle: string; rawResizeR: ResizeRule; }): Promise; makeImageAvailable(input: NewVariantAndOwnerInput): Promise; createOwnerTransaction(ownerHandle: string): ImageCacheOwnerTransaction; invalidate(options: { mediaId: string; } | { mediaIds: string[]; } | { ownerHandles: string[]; }): Promise; /** * Delete the images that have no ownerHandle and that have not been used recently. */ cleanUnusedValues(): Promise; clearCache(): Promise; getUsedRawSizesByMedia(mediaId: string): Promise; close(): Promise; } export interface NewVariantAndOwnerInput extends NewVariantInput { ownerHandle: string; isHandleReusable: boolean; /** * If `true`, the `ownerHandle` is used for a single variant with the same `mediaType` and * `mediaId`. Also, `getImageVariantWithBinaryByOwner` can be safely used to fetch the image * variant even when the variant is still being processed. */ canBeRetrievedByOwner: boolean; } export interface CreateImageCacheEngineOptions { storage: ImageVariantStorage; getOriginalImage: GetOriginalImage; logger?: AppLogger; dependsOn: string; qualityPolicy: ScImageCompressionQualityPolicyStep[]; /** * For example: `"14d"`. Leave `undefined` to keep cache data undefinitely. */ timeToIdle?: string; debugMode?: boolean; } export declare function createImageCacheEngine(options: CreateImageCacheEngineOptions): Promise<{ imageCache: ImageCacheEngine; isFresh: boolean; databaseId: string; }>; //# sourceMappingURL=image-cache-engine.d.ts.map