import type { HTMLAttributes } from 'vue';
import type { Color } from './types';
export type { Color };
export interface Props {
    /** The style of the component */
    style?: HTMLAttributes['style'];
    /** The class of the component */
    class?: HTMLAttributes['class'];
    /** The source of the image */
    src?: string | null;
    /** The caption of the avatar */
    caption?: string | null;
    /** The link of the avatar */
    href?: string;
    /** The link (router-link) of the avatar */
    to?: string | Record<string, unknown>;
    /** The alt of the image */
    alt?: string;
    /** The target of the link */
    target?: string;
    /** The size of the avatar */
    size?: string;
    /** Add a border to the avatar */
    bordered?: boolean;
    /** Make the avatar clickable */
    clickable?: boolean;
    /** Make the avatar square */
    square?: boolean;
    /** Remove the shadow */
    noElevation?: boolean;
    /** Show the caption */
    showCaption?: boolean;
    /** Make the image height full */
    imageHeightFull?: boolean;
    /** Remove the loader */
    noLoader?: boolean;
    /** The color of the clickable button */
    buttonColor?: Color;
    /** Remove the icon on hover when component is clickable */
    noClickableIcon?: boolean;
    /** Number of letters to display in the round text */
    letterCount?: number;
    /**
     * Size of the rounded
     * @values `'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'`
     */
    roundedSize?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
    /** The fallback src to replace the src on loading error */
    fallbackSrc?: string;
    /** Load the fallback image by default */
    noPhoto?: boolean;
    /**
     * The loading strategy of the image - lazy, eager or intersecting
     * @default 'intersecting'
     * @values `'lazy' | 'eager' | 'intersecting'`
     */
    loading?: 'lazy' | 'eager' | 'intersecting';
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        "round-text"?(_: {}): any;
        icon?(_: {}): any;
        caption?(_: {}): any;
    };
    refs: {};
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
    click: (event: MouseEvent) => any;
    error: (el: Element) => any;
    loaded: (el: Element) => any;
    loading: (el: Element) => any;
    intersecting: (el: Element) => any;
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
    onClick?: ((event: MouseEvent) => any) | undefined;
    onError?: ((el: Element) => any) | undefined;
    onLoaded?: ((el: Element) => any) | undefined;
    onLoading?: ((el: Element) => any) | undefined;
    onIntersecting?: ((el: Element) => any) | undefined;
}>, {
    caption: string | null;
    size: string;
    src: string | null;
    roundedSize: "none" | "sm" | "md" | "lg" | "xl" | "full";
    loading: "lazy" | "eager" | "intersecting";
    href: string;
    to: string | Record<string, unknown>;
    target: string;
    alt: string;
    fallbackSrc: string;
    buttonColor: Color;
    letterCount: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
