import * as i0 from '@angular/core';
import { OnChanges, EventEmitter, ElementRef } from '@angular/core';
import { NzConfigKey } from 'ng-zorro-antd/core/config';
import { NzShapeSCType, NzSizeLDSType } from 'ng-zorro-antd/core/types';

/** https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-loading */
type NzAvatarLoading = 'eager' | 'lazy';
/** https://wicg.github.io/priority-hints/#idl-index */
type NzAvatarFetchPriority = 'high' | 'low' | 'auto';
declare class NzAvatarComponent implements OnChanges {
    readonly _nzModuleName: NzConfigKey;
    nzShape: NzShapeSCType;
    nzSize: NzSizeLDSType | number;
    nzGap: number;
    nzText?: string;
    nzSrc?: string;
    nzSrcSet?: string;
    nzAlt?: string;
    nzIcon?: string;
    readonly nzLoading: i0.InputSignal<NzAvatarLoading | undefined>;
    readonly nzFetchPriority: i0.InputSignal<NzAvatarFetchPriority | undefined>;
    readonly nzError: EventEmitter<Event>;
    hasText: boolean;
    hasSrc: boolean;
    hasIcon: boolean;
    customSize: string | null;
    textEl?: ElementRef<HTMLSpanElement>;
    private el;
    private cdr;
    constructor();
    imgError(event: Event): void;
    ngOnChanges(): void;
    private calcStringSize;
    private setSizeStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzAvatarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzAvatarComponent, "nz-avatar", ["nzAvatar"], { "nzShape": { "alias": "nzShape"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; "nzGap": { "alias": "nzGap"; "required": false; }; "nzText": { "alias": "nzText"; "required": false; }; "nzSrc": { "alias": "nzSrc"; "required": false; }; "nzSrcSet": { "alias": "nzSrcSet"; "required": false; }; "nzAlt": { "alias": "nzAlt"; "required": false; }; "nzIcon": { "alias": "nzIcon"; "required": false; }; "nzLoading": { "alias": "nzLoading"; "required": false; "isSignal": true; }; "nzFetchPriority": { "alias": "nzFetchPriority"; "required": false; "isSignal": true; }; }, { "nzError": "nzError"; }, never, ["*"], true, never>;
    static ngAcceptInputType_nzGap: unknown;
}

declare class NzAvatarGroupComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzAvatarGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzAvatarGroupComponent, "nz-avatar-group", ["nzAvatarGroup"], {}, {}, never, ["*"], true, never>;
}

declare class NzAvatarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzAvatarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzAvatarModule, never, [typeof NzAvatarComponent, typeof NzAvatarGroupComponent], [typeof NzAvatarComponent, typeof NzAvatarGroupComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzAvatarModule>;
}

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

interface NzAvatarProps {
    shape?: NzShapeSCType;
    size?: NzSizeLDSType | number;
    gap?: number;
    src?: string;
    srcSet?: string;
    alt?: string;
    icon?: string;
    text?: string;
    error?: (event: Event) => void;
}

export { NzAvatarComponent, NzAvatarGroupComponent, NzAvatarModule };
export type { NzAvatarProps };
