import * as i0 from '@angular/core';
import { OnInit, OnChanges, SimpleChanges } from '@angular/core';

/**
 * 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
 */
type NzSkeletonParagraphWidth = number | string | Array<number | string>;
type NzSkeletonButtonShape = 'square' | 'circle' | 'round' | 'default';
type NzSkeletonAvatarShape = 'square' | 'circle';
type NzSkeletonInputSize = 'large' | 'small' | 'default';
type NzSkeletonButtonSize = NzSkeletonInputSize;
type NzSkeletonAvatarSize = NzSkeletonInputSize | number;
interface NzSkeletonAvatar {
    size?: NzSkeletonAvatarSize;
    shape?: NzSkeletonAvatarShape;
}
interface NzSkeletonTitle {
    width?: number | string;
}
interface NzSkeletonParagraph {
    rows?: number;
    width?: NzSkeletonParagraphWidth;
}

/**
 * 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
 */

declare class NzSkeletonComponent implements OnInit, OnChanges {
    private cdr;
    nzActive: boolean;
    nzLoading: boolean;
    nzRound: boolean;
    nzTitle: NzSkeletonTitle | boolean;
    nzAvatar: NzSkeletonAvatar | boolean;
    nzParagraph: NzSkeletonParagraph | boolean;
    title: NzSkeletonTitle;
    avatar: NzSkeletonAvatar;
    paragraph: NzSkeletonParagraph;
    rowsList: number[];
    widthList: Array<number | string>;
    protected toCSSUnit(value?: number | string): string;
    private getTitleProps;
    private getAvatarProps;
    private getParagraphProps;
    private getProps;
    private getWidthList;
    private updateProps;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSkeletonComponent, "nz-skeleton", ["nzSkeleton"], { "nzActive": { "alias": "nzActive"; "required": false; }; "nzLoading": { "alias": "nzLoading"; "required": false; }; "nzRound": { "alias": "nzRound"; "required": false; }; "nzTitle": { "alias": "nzTitle"; "required": false; }; "nzAvatar": { "alias": "nzAvatar"; "required": false; }; "nzParagraph": { "alias": "nzParagraph"; "required": false; }; }, {}, never, ["*"], true, never>;
    static ngAcceptInputType_nzActive: unknown;
    static ngAcceptInputType_nzLoading: unknown;
    static ngAcceptInputType_nzRound: unknown;
}

/**
 * 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
 */

declare class NzSkeletonElementDirective {
    nzActive: boolean;
    nzType: 'button' | 'input' | 'avatar' | 'image';
    nzBlock: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonElementDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzSkeletonElementDirective, "nz-skeleton-element", never, { "nzActive": { "alias": "nzActive"; "required": false; }; "nzType": { "alias": "nzType"; "required": false; }; "nzBlock": { "alias": "nzBlock"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_nzActive: unknown;
    static ngAcceptInputType_nzBlock: unknown;
}
declare class NzSkeletonElementButtonComponent {
    nzShape: NzSkeletonButtonShape;
    nzSize: NzSkeletonButtonSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonElementButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSkeletonElementButtonComponent, "nz-skeleton-element[nzType=\"button\"]", never, { "nzShape": { "alias": "nzShape"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NzSkeletonElementAvatarComponent implements OnChanges {
    nzShape: NzSkeletonAvatarShape;
    nzSize: NzSkeletonAvatarSize;
    styleMap: {};
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonElementAvatarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSkeletonElementAvatarComponent, "nz-skeleton-element[nzType=\"avatar\"]", never, { "nzShape": { "alias": "nzShape"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NzSkeletonElementInputComponent {
    nzSize: NzSkeletonInputSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonElementInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSkeletonElementInputComponent, "nz-skeleton-element[nzType=\"input\"]", never, { "nzSize": { "alias": "nzSize"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NzSkeletonElementImageComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonElementImageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzSkeletonElementImageComponent, "nz-skeleton-element[nzType=\"image\"]", never, {}, {}, never, never, true, never>;
}

declare class NzSkeletonModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzSkeletonModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzSkeletonModule, never, [typeof NzSkeletonElementDirective, typeof NzSkeletonComponent, typeof NzSkeletonElementButtonComponent, typeof NzSkeletonElementAvatarComponent, typeof NzSkeletonElementImageComponent, typeof NzSkeletonElementInputComponent], [typeof NzSkeletonElementDirective, typeof NzSkeletonComponent, typeof NzSkeletonElementButtonComponent, typeof NzSkeletonElementAvatarComponent, typeof NzSkeletonElementImageComponent, typeof NzSkeletonElementInputComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzSkeletonModule>;
}

export { NzSkeletonComponent, NzSkeletonElementAvatarComponent, NzSkeletonElementButtonComponent, NzSkeletonElementDirective, NzSkeletonElementImageComponent, NzSkeletonElementInputComponent, NzSkeletonModule };
export type { NzSkeletonAvatar, NzSkeletonAvatarShape, NzSkeletonAvatarSize, NzSkeletonButtonShape, NzSkeletonButtonSize, NzSkeletonInputSize, NzSkeletonParagraph, NzSkeletonParagraphWidth, NzSkeletonTitle };
