import * as i0 from '@angular/core';
import { ElementRef, TemplateRef, OnChanges, AfterContentInit, QueryList, AfterViewInit, OnInit, SimpleChanges } from '@angular/core';
import { Direction } from '@angular/cdk/bidi';
import { Observable } from 'rxjs';
import { NzSafeAny, NzDirectionVHType, NzSizeLDSType } from 'ng-zorro-antd/core/types';

/**
 * 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 ColumnCount = 1 | 2 | 3 | 4 | 6 | 8 | 12 | 24;
interface NzListGrid {
    gutter?: number;
    span?: number;
    column?: ColumnCount;
    xs?: ColumnCount;
    sm?: ColumnCount;
    md?: ColumnCount;
    lg?: ColumnCount;
    xl?: ColumnCount;
    xxl?: ColumnCount;
}

declare class NzListItemMetaTitleComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemMetaTitleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemMetaTitleComponent, "nz-list-item-meta-title", ["nzListItemMetaTitle"], {}, {}, never, ["*"], true, never>;
}
declare class NzListItemMetaDescriptionComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemMetaDescriptionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemMetaDescriptionComponent, "nz-list-item-meta-description", ["nzListItemMetaDescription"], {}, {}, never, ["*"], true, never>;
}
declare class NzListItemMetaAvatarComponent {
    nzSrc?: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemMetaAvatarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemMetaAvatarComponent, "nz-list-item-meta-avatar", ["nzListItemMetaAvatar"], { "nzSrc": { "alias": "nzSrc"; "required": false; }; }, {}, never, ["*"], true, never>;
}

declare class NzListItemMetaComponent {
    readonly elementRef: ElementRef<any>;
    avatarStr: string;
    avatarTpl?: TemplateRef<void>;
    set nzAvatar(value: string | TemplateRef<void>);
    nzTitle?: string | TemplateRef<void>;
    nzDescription?: string | TemplateRef<void>;
    descriptionComponent?: NzListItemMetaDescriptionComponent;
    titleComponent?: NzListItemMetaTitleComponent;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemMetaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemMetaComponent, "nz-list-item-meta, [nz-list-item-meta]", ["nzListItemMeta"], { "nzAvatar": { "alias": "nzAvatar"; "required": false; }; "nzTitle": { "alias": "nzTitle"; "required": false; }; "nzDescription": { "alias": "nzDescription"; "required": false; }; }, {}, ["descriptionComponent", "titleComponent"], ["nz-list-item-meta-avatar", "nz-list-item-meta-title", "nz-list-item-meta-description"], true, never>;
}

declare class NzListItemExtraComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemExtraComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemExtraComponent, "nz-list-item-extra, [nz-list-item-extra]", ["nzListItemExtra"], {}, {}, never, ["*"], true, never>;
}
declare class NzListItemActionComponent {
    templateRef?: TemplateRef<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemActionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemActionComponent, "nz-list-item-action", ["nzListItemAction"], {}, {}, never, ["*"], true, never>;
}
declare class NzListItemActionsComponent implements OnChanges, AfterContentInit {
    private cdr;
    nzActions: Array<TemplateRef<void>>;
    nzListItemActions: QueryList<NzListItemActionComponent>;
    actions: Array<TemplateRef<void>>;
    private inputActionChanges$;
    private contentChildrenChanges$;
    private initialized;
    constructor();
    ngOnChanges(): void;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemActionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemActionsComponent, "ul[nz-list-item-actions]", ["nzListItemActions"], { "nzActions": { "alias": "nzActions"; "required": false; }; }, {}, ["nzListItemActions"], never, true, never>;
}

declare class NzListItemComponent implements AfterViewInit {
    private cdr;
    private destroyRef;
    private parentComp;
    nzActions: Array<TemplateRef<void>>;
    nzContent?: string | TemplateRef<void>;
    nzExtra: TemplateRef<void> | null;
    nzNoFlex: boolean;
    listItemExtraDirective?: NzListItemExtraComponent;
    private itemLayout?;
    get isVerticalAndExtra(): boolean;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListItemComponent, "nz-list-item, [nz-list-item]", ["nzListItem"], { "nzActions": { "alias": "nzActions"; "required": false; }; "nzContent": { "alias": "nzContent"; "required": false; }; "nzExtra": { "alias": "nzExtra"; "required": false; }; "nzNoFlex": { "alias": "nzNoFlex"; "required": false; }; }, {}, ["listItemExtraDirective"], ["nz-list-item-actions, [nz-list-item-actions]", "nz-list-item-meta, [nz-list-item-meta]", "*", "nz-list-item-extra, [nz-list-item-extra]"], true, never>;
    static ngAcceptInputType_nzNoFlex: 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 NzListEmptyComponent {
    nzNoResult?: string | TemplateRef<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListEmptyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListEmptyComponent, "nz-list-empty", ["nzListHeader"], { "nzNoResult": { "alias": "nzNoResult"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NzListHeaderComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListHeaderComponent, "nz-list-header", ["nzListHeader"], {}, {}, never, ["*"], true, never>;
}
declare class NzListFooterComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListFooterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListFooterComponent, "nz-list-footer", ["nzListFooter"], {}, {}, never, ["*"], true, never>;
}
declare class NzListPaginationComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListPaginationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListPaginationComponent, "nz-list-pagination", ["nzListPagination"], {}, {}, never, ["*"], true, never>;
}
declare class NzListLoadMoreDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListLoadMoreDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzListLoadMoreDirective, "nz-list-load-more", ["nzListLoadMoreDirective"], {}, {}, never, never, true, never>;
}
declare class NzListGridDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListGridDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzListGridDirective, "nz-list[nzGrid]", never, {}, {}, never, never, true, never>;
}

/**
 * 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 NzListComponent implements AfterContentInit, OnChanges, OnInit {
    private directionality;
    private destroyRef;
    nzDataSource?: NzSafeAny[];
    nzBordered: boolean;
    nzGrid?: NzListGrid | '' | null | undefined;
    nzHeader?: string | TemplateRef<void>;
    nzFooter?: string | TemplateRef<void>;
    nzItemLayout: NzDirectionVHType;
    nzRenderItem: TemplateRef<{
        $implicit: NzSafeAny;
        index: number;
    }> | null;
    nzLoading: boolean;
    nzLoadMore: TemplateRef<void> | null;
    nzPagination?: TemplateRef<void>;
    nzSize: NzSizeLDSType;
    nzSplit: boolean;
    nzNoResult?: string | TemplateRef<void>;
    nzListFooterComponent: NzListFooterComponent;
    nzListPaginationComponent: NzListPaginationComponent;
    nzListLoadMoreDirective: NzListLoadMoreDirective;
    hasSomethingAfterLastItem: boolean;
    dir: Direction;
    private itemLayoutNotifySource;
    get itemLayoutNotify$(): Observable<NzDirectionVHType>;
    constructor();
    ngOnInit(): void;
    getSomethingAfterLastItem(): boolean;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzListComponent, "nz-list, [nz-list]", ["nzList"], { "nzDataSource": { "alias": "nzDataSource"; "required": false; }; "nzBordered": { "alias": "nzBordered"; "required": false; }; "nzGrid": { "alias": "nzGrid"; "required": false; }; "nzHeader": { "alias": "nzHeader"; "required": false; }; "nzFooter": { "alias": "nzFooter"; "required": false; }; "nzItemLayout": { "alias": "nzItemLayout"; "required": false; }; "nzRenderItem": { "alias": "nzRenderItem"; "required": false; }; "nzLoading": { "alias": "nzLoading"; "required": false; }; "nzLoadMore": { "alias": "nzLoadMore"; "required": false; }; "nzPagination": { "alias": "nzPagination"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; "nzSplit": { "alias": "nzSplit"; "required": false; }; "nzNoResult": { "alias": "nzNoResult"; "required": false; }; }, {}, ["nzListFooterComponent", "nzListPaginationComponent", "nzListLoadMoreDirective"], ["nz-list-header", "*", "nz-list-footer, [nz-list-footer]", "nz-list-load-more, [nz-list-load-more]", "nz-list-pagination, [nz-list-pagination]"], true, never>;
    static ngAcceptInputType_nzBordered: unknown;
    static ngAcceptInputType_nzLoading: unknown;
    static ngAcceptInputType_nzSplit: unknown;
}

declare class NzListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzListModule, never, [typeof NzListComponent, typeof NzListHeaderComponent, typeof NzListFooterComponent, typeof NzListPaginationComponent, typeof NzListEmptyComponent, typeof NzListItemComponent, typeof NzListItemMetaComponent, typeof NzListItemMetaTitleComponent, typeof NzListItemMetaDescriptionComponent, typeof NzListItemMetaAvatarComponent, typeof NzListItemActionsComponent, typeof NzListItemActionComponent, typeof NzListItemExtraComponent, typeof NzListLoadMoreDirective, typeof NzListGridDirective], [typeof NzListComponent, typeof NzListHeaderComponent, typeof NzListFooterComponent, typeof NzListPaginationComponent, typeof NzListEmptyComponent, typeof NzListItemComponent, typeof NzListItemMetaComponent, typeof NzListItemMetaTitleComponent, typeof NzListItemMetaDescriptionComponent, typeof NzListItemMetaAvatarComponent, typeof NzListItemActionsComponent, typeof NzListItemActionComponent, typeof NzListItemExtraComponent, typeof NzListLoadMoreDirective, typeof NzListGridDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzListModule>;
}

export { NzListComponent, NzListEmptyComponent, NzListFooterComponent, NzListGridDirective, NzListHeaderComponent, NzListItemActionComponent, NzListItemActionsComponent, NzListItemComponent, NzListItemExtraComponent, NzListItemMetaAvatarComponent, NzListItemMetaComponent, NzListItemMetaDescriptionComponent, NzListItemMetaTitleComponent, NzListLoadMoreDirective, NzListModule, NzListPaginationComponent };
export type { ColumnCount, NzListGrid };
