import * as i0 from '@angular/core';
import { QueryList } from '@angular/core';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';

/**
 * Component representing an avatar badge.
 * This badge can be positioned at the top or bottom of the avatar and is used
 * to display additional information or status indicators.
 *
 * The component uses content projection to allow any content to be displayed inside the badge.
 *
 */
declare class EuiAvatarBadgeComponent {
    /**
     * Gets the CSS classes to be applied to the host element.
     * Combines the base class with a modifier class based on the position.
     * @returns {string} The combined CSS classes.
     */
    get cssClasses(): string;
    /**
     * Whether the avatar should have a shadow effect
     * @default false
     */
    isPositionBottom: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarBadgeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarBadgeComponent, "eui-avatar-badge", never, { "isPositionBottom": { "alias": "isPositionBottom"; "required": false; }; }, {}, never, ["*"], true, never>;
    static ngAcceptInputType_isPositionBottom: unknown;
}

/**
 * @description
 * Component representing an avatar icon.
 * This component serves as a container for icons within an avatar.
 * It applies the appropriate styling and structure needed for avatar icons.
 *
 * The component simply wraps its content with the 'eui-avatar-icon' class styling.
 * Used for displaying icons as avatar content instead of images or text.
 */
declare class EuiAvatarIconComponent {
    /** @internal */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarIconComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarIconComponent, "eui-avatar-icon", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Component representing an avatar image.
 * Displays an image for an avatar with fallback to a default image when none is provided.
 * Uses the application's configured assets base URL for the default image path.
 */
declare class EuiAvatarImageComponent {
    /** CSS class applied to the host element */
    get cssClasses(): string;
    /**
     * URL of the image to be displayed in the avatar.
     * If not provided, a default image will be used.
     */
    imageUrl: any;
    /**
     * The final image URL to be used in the template.
     * This will be either the provided imageUrl or a default image URL.
     */
    imageUrlGenerated: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarImageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarImageComponent, "eui-avatar-image", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; }, {}, never, never, true, never>;
}

/**
 * @description
 * Component for displaying a list of avatars.
 * This component serves as a container that arranges multiple avatars in a visually
 * coherent group, typically with slight overlapping to save space.
 *
 * The component uses content projection to allow placing multiple avatar components
 * within it and applies appropriate styling via the 'eui-avatar-list' CSS class.
 */
declare class EuiAvatarContentComponent {
    /**
     * Binds the CSS class 'eui-avatar-list' to the host element.
     * This class provides the styling necessary for arranging avatars in a list.
     * @returns {string} The CSS class name
     */
    get cssClasses(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarContentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarContentComponent, "eui-avatar-content", never, {}, {}, never, ["eui-avatar-content-label", "eui-avatar-content-sublabel"], true, never>;
}

/**
 * @description
 * Component for displaying a list of avatars.
 * This component serves as a container that arranges multiple avatars in a visually
 * coherent group, typically with slight overlapping to save space.
 *
 * The component uses content projection to allow placing multiple avatar components
 * within it and applies appropriate styling via the 'eui-avatar-list' CSS class.
 */
declare class EuiAvatarListComponent {
    /**
     * Binds the CSS class 'eui-avatar-list' to the host element.
     * This class provides the styling necessary for arranging avatars in a list.
     * @returns {string} The CSS class name
     */
    get cssClasses(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarListComponent, "eui-avatar-list", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Component for displaying text content within an avatar.
 * This component serves as a container for text that appears inside an avatar,
 * such as initials or short text identifiers.
 *
 * The component applies the 'eui-avatar-text' class to provide appropriate styling
 * for text displayed within an avatar context. It uses content projection to allow
 * any text content to be displayed inside.
 *
 */
declare class EuiAvatarTextComponent {
    /**
     * Binds the CSS class 'eui-avatar-text' to the host element.
     * This class provides the styling necessary for text content within an avatar.
     */
    string: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarTextComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarTextComponent, "eui-avatar-text", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Component for displaying avatars in the EUI design system.
 *
 * An avatar is a visual representation of a user or entity and can contain
 * an image, text, or an icon. This component serves as the container for
 * various avatar subcomponents, such as EuiAvatarImage, EuiAvatarText,
 * EuiAvatarIcon, and EuiAvatarBadge.
 *
 * The component supports various customizations, including colors (via state directives),
 * sizes, shapes, and appearance modifiers.
 *
 */
declare class EuiAvatarComponent {
    /**
     * Gets the CSS classes to be applied to the host element.
     * Combines base classes with modifier classes.
     * @returns {string} The combined CSS classes
     */
    get cssClasses(): string;
    /**
     * Data attribute for E2E testing
     * @default 'eui-avatar'
     */
    e2eAttr: string;
    /**
     * ARIA role for accessibility
     * @default 'status'
     */
    role: string;
    /**
     * ARIA label for accessibility
     * @default 'avatar'
     */
    ariaLabel: string | null;
    /**
     * Whether the avatar should have a shadow effect
     * @default false
     */
    hasShadow: boolean;
    /**
     * Whether the avatar shape should be square instead of circular
     * @default false
     */
    isShapeSquare: boolean;
    /**
     * Whether the avatar should have no background color
     * @default false
     */
    hasNoBackground: boolean;
    /**
     * Whether the avatar reverse layout with content
     * @default false
     */
    isReverse: boolean;
    /**
     * Extra color palette to be used on the avatar.
     */
    colorPalette: string;
    avatarImage: QueryList<EuiAvatarImageComponent>;
    /**
     * Reference to the BaseStatesDirective providing state-based styling
     * @internal
     */
    protected baseStatesDirective: BaseStatesDirective;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarComponent, "div[euiAvatar], span[euiAvatar], eui-avatar", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "hasShadow": { "alias": "hasShadow"; "required": false; }; "isShapeSquare": { "alias": "isShapeSquare"; "required": false; }; "hasNoBackground": { "alias": "hasNoBackground"; "required": false; }; "isReverse": { "alias": "isReverse"; "required": false; }; "colorPalette": { "alias": "colorPalette"; "required": false; }; }, {}, ["avatarImage"], ["eui-avatar-icon", "eui-avatar-text", "eui-avatar-image", "eui-avatar-badge", "eui-avatar-content"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiVariant": "euiVariant"; "euiSizeXS": "euiSizeXS"; "euiSizeS": "euiSizeS"; "euiSizeL": "euiSizeL"; "euiSizeXL": "euiSizeXL"; "euiSize2XL": "euiSize2XL"; "euiSizeVariant": "euiSizeVariant"; "euiOutline": "euiOutline"; }; outputs: {}; }]>;
    static ngAcceptInputType_hasShadow: unknown;
    static ngAcceptInputType_isShapeSquare: unknown;
    static ngAcceptInputType_hasNoBackground: unknown;
    static ngAcceptInputType_isReverse: unknown;
}

/**
 * @description
 * Component for displaying a list of avatars.
 * This component serves as a container that arranges multiple avatars in a visually
 * coherent group, typically with slight overlapping to save space.
 *
 * The component uses content projection to allow placing multiple avatar components
 * within it and applies appropriate styling via the 'eui-avatar-list' CSS class.
 */
declare class EuiAvatarContentSublabelComponent {
    /**
     * Binds the CSS class 'eui-avatar-list' to the host element.
     * This class provides the styling necessary for arranging avatars in a list.
     * @returns {string} The CSS class name
     */
    get cssClasses(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarContentSublabelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarContentSublabelComponent, "eui-avatar-content-sublabel", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Component for displaying a list of avatars.
 * This component serves as a container that arranges multiple avatars in a visually
 * coherent group, typically with slight overlapping to save space.
 *
 * The component uses content projection to allow placing multiple avatar components
 * within it and applies appropriate styling via the 'eui-avatar-list' CSS class.
 */
declare class EuiAvatarContentLabelComponent {
    /**
     * Binds the CSS class 'eui-avatar-list' to the host element.
     * This class provides the styling necessary for arranging avatars in a list.
     * @returns {string} The CSS class name
     */
    get cssClasses(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAvatarContentLabelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiAvatarContentLabelComponent, "eui-avatar-content-label", never, {}, {}, never, ["*"], true, never>;
}

declare const EUI_AVATAR: readonly [typeof EuiAvatarComponent, typeof EuiAvatarIconComponent, typeof EuiAvatarTextComponent, typeof EuiAvatarImageComponent, typeof EuiAvatarBadgeComponent, typeof EuiAvatarListComponent, typeof EuiAvatarContentComponent, typeof EuiAvatarContentLabelComponent, typeof EuiAvatarContentSublabelComponent];

export { EUI_AVATAR, EuiAvatarBadgeComponent, EuiAvatarComponent, EuiAvatarContentComponent, EuiAvatarContentLabelComponent, EuiAvatarContentSublabelComponent, EuiAvatarIconComponent, EuiAvatarImageComponent, EuiAvatarListComponent, EuiAvatarTextComponent };
//# sourceMappingURL=eui-components-eui-avatar.d.ts.map
