import type { ImageFileDescriptor, NormalizedFileDescriptorSource } from '@resee-movies/utilities/images/normalize-image-file-descriptor'; import { type DirectusFileDescriptor, type GetMediaAssetUrlOptions, type MediaAssetTransformConfig } from '@resee-movies/utilities/resee/get-media-asset-url'; import { type GetTmdbImageUrlOptions, type TmdbFileDescriptor, type TmdbImageSize } from '@resee-movies/utilities/tmdb/get-tmdb-image-url'; import { type MaybeRefOrGetter, type Reactive, type Ref } from 'vue'; export type LoadImageOptions = { friendlyName?: MaybeRefOrGetter; placeholderSrc?: MaybeRefOrGetter; errorSrc?: MaybeRefOrGetter; width?: MaybeRefOrGetter; type?: MaybeRefOrGetter; reseeConfig?: MaybeRefOrGetter; deferLoad?: Ref; onLoading?: () => void; onBgLoading?: () => void; onLoad?: (src: string | undefined, key: string | undefined) => void; onError?: (err: unknown) => void; }; export type LoadImageState = Reactive<{ src: string | undefined; key: string | undefined; error: unknown; loading: boolean; bgLoading: boolean; }>; /** * The Image store provides methods for generating image URLs, and/or intelligently * loading image files into the browser. */ export declare const useImageStore: import("pinia").StoreDefinition<"image", Pick<{ loadImage: (source: MaybeRefOrGetter, options: LoadImageOptions) => import("vue").ShallowReactive<{ src: string | undefined; key: string | undefined; error: unknown; loading: boolean; bgLoading: boolean; }>; getImageUrl: (descriptor: ImageFileDescriptor | null | undefined) => any; getMediaAssetUrl: { (fileId: string, options?: Omit): string; (fileId: DirectusFileDescriptor, options?: Omit): string; (fileId: string, fileName?: string | null | undefined, options?: Omit): string; }; getTmdbImageUrl: (file: TmdbFileDescriptor | string | null | undefined, size?: TmdbImageSize, opts?: Omit) => any; }, never>, Pick<{ loadImage: (source: MaybeRefOrGetter, options: LoadImageOptions) => import("vue").ShallowReactive<{ src: string | undefined; key: string | undefined; error: unknown; loading: boolean; bgLoading: boolean; }>; getImageUrl: (descriptor: ImageFileDescriptor | null | undefined) => any; getMediaAssetUrl: { (fileId: string, options?: Omit): string; (fileId: DirectusFileDescriptor, options?: Omit): string; (fileId: string, fileName?: string | null | undefined, options?: Omit): string; }; getTmdbImageUrl: (file: TmdbFileDescriptor | string | null | undefined, size?: TmdbImageSize, opts?: Omit) => any; }, never>, Pick<{ loadImage: (source: MaybeRefOrGetter, options: LoadImageOptions) => import("vue").ShallowReactive<{ src: string | undefined; key: string | undefined; error: unknown; loading: boolean; bgLoading: boolean; }>; getImageUrl: (descriptor: ImageFileDescriptor | null | undefined) => any; getMediaAssetUrl: { (fileId: string, options?: Omit): string; (fileId: DirectusFileDescriptor, options?: Omit): string; (fileId: string, fileName?: string | null | undefined, options?: Omit): string; }; getTmdbImageUrl: (file: TmdbFileDescriptor | string | null | undefined, size?: TmdbImageSize, opts?: Omit) => any; }, "loadImage" | "getImageUrl" | "getMediaAssetUrl" | "getTmdbImageUrl">>;