import * as _angular_core from '@angular/core';
import { ZIcon } from '@shival99/z-ui/components/z-icon';
import { ClassValue } from 'clsx';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

type ZAvatarSize = 'xs' | 'sm' | 'default' | 'lg' | 'xl';
type ZAvatarShape = 'circle' | 'rounded' | 'square';
type ZAvatarStatus = 'online' | 'offline' | 'busy' | 'away';
type ZAvatarRing = 'none' | 'default' | 'active' | 'muted';
type ZAvatarFallback = 'initials' | 'icon';
interface ZAvatarItem {
    id: string | number;
    name: string;
    src?: string;
    alt?: string;
    icon?: ZIcon;
    status?: ZAvatarStatus;
}

declare class ZAvatarComponent {
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zSrc: _angular_core.InputSignal<string>;
    readonly zName: _angular_core.InputSignal<string>;
    readonly zAlt: _angular_core.InputSignal<string>;
    readonly zIcon: _angular_core.InputSignal<ZIcon>;
    readonly zSize: _angular_core.InputSignal<ZAvatarSize>;
    readonly zShape: _angular_core.InputSignal<ZAvatarShape>;
    readonly zStatus: _angular_core.InputSignal<ZAvatarStatus | undefined>;
    readonly zRing: _angular_core.InputSignal<ZAvatarRing>;
    readonly zFallback: _angular_core.InputSignal<ZAvatarFallback>;
    readonly zShowLabel: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
    readonly zStatusAnimated: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
    readonly zInteractive: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
    readonly zDescription: _angular_core.InputSignal<string>;
    protected readonly imageFailed: _angular_core.WritableSignal<boolean>;
    protected readonly hostClasses: _angular_core.Signal<string>;
    protected readonly avatarClasses: _angular_core.Signal<string>;
    protected readonly imageClasses: _angular_core.Signal<string>;
    protected readonly statusClasses: _angular_core.Signal<string>;
    protected readonly labelClasses: _angular_core.Signal<string>;
    protected readonly iconSize: _angular_core.Signal<"12" | "14" | "16" | "18" | "24">;
    protected readonly altText: _angular_core.Signal<string>;
    protected readonly shouldShowImage: _angular_core.Signal<boolean>;
    protected readonly initials: _angular_core.Signal<string>;
    protected onImageError(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZAvatarComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZAvatarComponent, "z-avatar", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSrc": { "alias": "zSrc"; "required": false; "isSignal": true; }; "zName": { "alias": "zName"; "required": false; "isSignal": true; }; "zAlt": { "alias": "zAlt"; "required": false; "isSignal": true; }; "zIcon": { "alias": "zIcon"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zShape": { "alias": "zShape"; "required": false; "isSignal": true; }; "zStatus": { "alias": "zStatus"; "required": false; "isSignal": true; }; "zRing": { "alias": "zRing"; "required": false; "isSignal": true; }; "zFallback": { "alias": "zFallback"; "required": false; "isSignal": true; }; "zShowLabel": { "alias": "zShowLabel"; "required": false; "isSignal": true; }; "zStatusAnimated": { "alias": "zStatusAnimated"; "required": false; "isSignal": true; }; "zInteractive": { "alias": "zInteractive"; "required": false; "isSignal": true; }; "zDescription": { "alias": "zDescription"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class ZAvatarGroupComponent {
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zItems: _angular_core.InputSignal<ZAvatarItem[]>;
    readonly zMax: _angular_core.InputSignal<number>;
    readonly zSize: _angular_core.InputSignal<ZAvatarSize>;
    readonly zShape: _angular_core.InputSignal<ZAvatarShape>;
    readonly zRing: _angular_core.InputSignal<ZAvatarRing>;
    protected readonly hostClasses: _angular_core.Signal<string>;
    protected readonly visibleItems: _angular_core.Signal<ZAvatarItem[]>;
    protected readonly overflowCount: _angular_core.Signal<number>;
    protected readonly overflowClasses: _angular_core.Signal<string>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZAvatarGroupComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZAvatarGroupComponent, "z-avatar-group", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zItems": { "alias": "zItems"; "required": false; "isSignal": true; }; "zMax": { "alias": "zMax"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zShape": { "alias": "zShape"; "required": false; "isSignal": true; }; "zRing": { "alias": "zRing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare const zAvatarVariants: (props?: ({
    zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
    zShape?: "circle" | "rounded" | "square" | null | undefined;
    zRing?: "default" | "none" | "active" | "muted" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zAvatarImageVariants: (props?: ({
    zShape?: "circle" | "rounded" | "square" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zAvatarStatusVariants: (props?: ({
    zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
    zStatus?: "online" | "offline" | "busy" | "away" | null | undefined;
    zAnimated?: boolean | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zAvatarLabelVariants: (props?: ({
    zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zAvatarGroupVariants: (props?: ({
    zSize?: "xs" | "sm" | "default" | "lg" | "xl" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZAvatarVariants = VariantProps<typeof zAvatarVariants>;
type ZAvatarStatusVariants = VariantProps<typeof zAvatarStatusVariants>;
type ZAvatarGroupVariants = VariantProps<typeof zAvatarGroupVariants>;

export { ZAvatarComponent, ZAvatarGroupComponent, zAvatarGroupVariants, zAvatarImageVariants, zAvatarLabelVariants, zAvatarStatusVariants, zAvatarVariants };
export type { ZAvatarFallback, ZAvatarGroupVariants, ZAvatarItem, ZAvatarRing, ZAvatarShape, ZAvatarSize, ZAvatarStatus, ZAvatarStatusVariants, ZAvatarVariants };
