import type { DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, PropType as __PropType } from 'vue'; import { type Component } from 'vue'; export interface GThumbnailProps { /** Image source URL */ src?: string | null; /** Enable intersection observer for lazy loading */ intersect?: boolean | string; /** Intersection observer options */ intersectOptions?: IntersectionObserverInit; /** Manual loading control */ manual?: boolean; /** Badge text */ badge?: string | null; /** Badge CSS classes */ badgeClass?: string | object | Array | null; /** Aspect ratio (e.g., "16:9") */ aspectRatio?: string; /** Loading style (false, 'skeleton', 'placeholder') */ loadingStyle?: boolean | string; /** Placeholder type or URL ('image', 'pink', false, or custom URL) */ placeholder?: string | boolean; /** Transition component options */ transitionOptions?: object | null; /** Skeleton component to use */ skeletonComponent?: Component; /** Debug mode ('loading', 'placeholder') */ debug?: string | null; /** Disable image caching */ disableCache?: boolean; } export type GThumbnailExposed = HTMLElement & { /** Reference to the thumbnail element */ thumbnailRef: HTMLElement | null; /** Aspect ratio box element */ aspectBox: HTMLElement | null; /** Load a new source */ loadSrc: (src: string) => void; /** Whether source is loaded */ isSrcLoaded: boolean; /** Whether source errored */ isSrcError: boolean; /** Source loaded successfully */ srcLoaded: string; /** Source currently loading */ srcLoading: string; /** Error source */ srcError: string; /** Placeholder source */ placeholderSrc: string; }; declare const _sfc_main: DefineComponent; required: false; default: null; }; intersect: { type: __PropType; required: false; default: boolean; }; intersectOptions: { type: __PropType; required: false; default: () => {}; }; manual: { type: __PropType; required: false; default: boolean; }; badge: { type: __PropType; required: false; default: null; }; badgeClass: { type: __PropType; required: false; default: null; }; aspectRatio: { type: __PropType; required: false; default: string; }; loadingStyle: { type: __PropType; required: false; default: boolean; }; placeholder: { type: __PropType; required: false; default: string; }; transitionOptions: { type: __PropType; required: false; default: null; }; skeletonComponent: { type: __PropType; required: false; default: () => DefineComponent; required: false; default: string; }; size: { type: __PropType; required: false; }; /** Loading style (false, 'skeleton', 'placeholder') */ width: { type: __PropType; required: false; /** Placeholder type or URL ('image', 'pink', false, or custom URL) */ default: string; }; height: { type: __PropType; required: false; default: string; }; borderRadius: { type: __PropType; required: false; /** Debug mode ('loading', 'placeholder') */ default: null; }; animation: { type: __PropType<"wave" | "none" | undefined>; required: false; default: string; }; }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly; required: false; default: string; }; size: { type: __PropType; required: false; }; /** Loading style (false, 'skeleton', 'placeholder') */ width: { type: __PropType; required: false; /** Placeholder type or URL ('image', 'pink', false, or custom URL) */ default: string; }; height: { type: __PropType; required: false; default: string; }; borderRadius: { type: __PropType; required: false; /** Debug mode ('loading', 'placeholder') */ default: null; }; animation: { type: __PropType<"wave" | "none" | undefined>; required: false; default: string; }; }>> & Readonly<{}>, { width: string | undefined; height: string | undefined; shape: "rectangle" | "circle" | undefined; borderRadius: string | null | undefined; animation: "wave" | "none" | undefined; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; }; debug: { type: __PropType; required: false; default: null; }; disableCache: { type: __PropType; required: false; default: boolean; }; }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("error" | "refMounted" | "update:el" | "loaded")[], "error" | "refMounted" | "update:el" | "loaded", PublicProps, Readonly; required: false; default: null; }; intersect: { type: __PropType; required: false; default: boolean; }; intersectOptions: { type: __PropType; required: false; default: () => {}; }; manual: { type: __PropType; required: false; default: boolean; }; badge: { type: __PropType; required: false; default: null; }; badgeClass: { type: __PropType; required: false; default: null; }; aspectRatio: { type: __PropType; required: false; default: string; }; loadingStyle: { type: __PropType; required: false; default: boolean; }; placeholder: { type: __PropType; required: false; default: string; }; transitionOptions: { type: __PropType; required: false; default: null; }; skeletonComponent: { type: __PropType; required: false; default: () => DefineComponent; required: false; default: string; }; size: { type: __PropType; required: false; }; /** Loading style (false, 'skeleton', 'placeholder') */ width: { type: __PropType; required: false; /** Placeholder type or URL ('image', 'pink', false, or custom URL) */ default: string; }; height: { type: __PropType; required: false; default: string; }; borderRadius: { type: __PropType; required: false; /** Debug mode ('loading', 'placeholder') */ default: null; }; animation: { type: __PropType<"wave" | "none" | undefined>; required: false; default: string; }; }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly; required: false; default: string; }; size: { type: __PropType; required: false; }; /** Loading style (false, 'skeleton', 'placeholder') */ width: { type: __PropType; required: false; /** Placeholder type or URL ('image', 'pink', false, or custom URL) */ default: string; }; height: { type: __PropType; required: false; default: string; }; borderRadius: { type: __PropType; required: false; /** Debug mode ('loading', 'placeholder') */ default: null; }; animation: { type: __PropType<"wave" | "none" | undefined>; required: false; default: string; }; }>> & Readonly<{}>, { width: string | undefined; height: string | undefined; shape: "rectangle" | "circle" | undefined; borderRadius: string | null | undefined; animation: "wave" | "none" | undefined; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; }; debug: { type: __PropType; required: false; default: null; }; disableCache: { type: __PropType; required: false; default: boolean; }; }>> & Readonly<{ onError?: ((...args: any[]) => any) | undefined; onRefMounted?: ((...args: any[]) => any) | undefined; "onUpdate:el"?: ((...args: any[]) => any) | undefined; onLoaded?: ((...args: any[]) => any) | undefined; }>, { src: string | null | undefined; intersect: string | boolean | undefined; intersectOptions: IntersectionObserverInit | undefined; manual: boolean | undefined; disableCache: boolean | undefined; loadingStyle: string | boolean | undefined; placeholder: string | boolean | undefined; transitionOptions: object | null | undefined; skeletonComponent: Component | undefined; debug: string | null | undefined; badge: string | null | undefined; badgeClass: string | object | (string | object)[] | null | undefined; aspectRatio: string | undefined; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; export default _sfc_main;