import * as i0 from '@angular/core';
import { OnChanges, AfterViewInit, TemplateRef, TrackByFunction, ElementRef, SimpleChanges, OnInit, EventEmitter, AfterContentInit, QueryList } from '@angular/core';
import * as _angular_cdk_bidi from '@angular/cdk/bidi';
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { NzConfigKey, NzConfigService } from 'ng-zorro-antd/core/config';
import { NzSafeAny } from 'ng-zorro-antd/core/types';
import { PaginationItemRenderContext } from 'ng-zorro-antd/pagination';
import * as rxjs from 'rxjs';
import { Subject, Observable, BehaviorSubject, ReplaySubject } from 'rxjs';
import { NzTableI18nInterface } from 'ng-zorro-antd/i18n';
import { NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';

/**
 * 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 NzTableLayout = 'fixed' | 'auto';
type NzTablePaginationPosition = 'top' | 'bottom' | 'both';
type NzTablePaginationType = 'default' | 'small';
type NzTableSize = 'middle' | 'default' | 'small';
type NzTableFilterList = Array<{
    text: string;
    value: NzSafeAny;
    byDefault?: boolean;
}>;
type NzTableSortOrder = string | 'ascend' | 'descend' | null;
type NzTableSortFn<T = unknown> = (a: T, b: T, sortOrder?: NzTableSortOrder) => number;
type NzTableFilterValue = NzSafeAny[] | NzSafeAny;
type NzTableFilterFn<T = unknown> = (value: NzTableFilterValue, data: T) => boolean;
interface NzTableQueryParams {
    pageIndex: number;
    pageSize: number;
    sort: Array<{
        key: string;
        value: NzTableSortOrder;
    }>;
    filter: Array<{
        key: string;
        value: NzTableFilterValue;
    }>;
}
interface NzCustomColumn {
    value: string;
    default: boolean;
    width: number;
    fixWidth?: boolean;
}
type NzTableSummaryFixedType = 'top' | 'bottom';

declare class NzTableInnerScrollComponent<T> implements OnChanges, AfterViewInit {
    private renderer;
    private ngZone;
    private platform;
    private resizeService;
    private destroyRef;
    data: readonly T[];
    scrollX: string | null;
    scrollY: string | null;
    contentTemplate: TemplateRef<NzSafeAny> | null;
    widthConfig: string[];
    listOfColWidth: ReadonlyArray<string | null>;
    theadTemplate: TemplateRef<NzSafeAny> | null;
    tfootTemplate: TemplateRef<NzSafeAny> | null;
    tfootFixed: NzTableSummaryFixedType | null;
    virtualTemplate: TemplateRef<NzSafeAny> | null;
    virtualItemSize: number;
    virtualMaxBufferPx: number;
    virtualMinBufferPx: number;
    tableMainElement?: HTMLDivElement;
    virtualForTrackBy: TrackByFunction<T>;
    tableHeaderElement: ElementRef;
    tableBodyElement: ElementRef;
    tableFootElement?: ElementRef;
    cdkVirtualScrollViewport?: CdkVirtualScrollViewport;
    headerStyleMap: {};
    bodyStyleMap: {};
    verticalScrollBarWidth: number;
    noDataVirtualHeight: string;
    private data$;
    private scroll$;
    private setScrollPositionClassName;
    constructor();
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableInnerScrollComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableInnerScrollComponent<any>, "nz-table-inner-scroll", never, { "data": { "alias": "data"; "required": false; }; "scrollX": { "alias": "scrollX"; "required": false; }; "scrollY": { "alias": "scrollY"; "required": false; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; }; "widthConfig": { "alias": "widthConfig"; "required": false; }; "listOfColWidth": { "alias": "listOfColWidth"; "required": false; }; "theadTemplate": { "alias": "theadTemplate"; "required": false; }; "tfootTemplate": { "alias": "tfootTemplate"; "required": false; }; "tfootFixed": { "alias": "tfootFixed"; "required": false; }; "virtualTemplate": { "alias": "virtualTemplate"; "required": false; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; }; "virtualMaxBufferPx": { "alias": "virtualMaxBufferPx"; "required": false; }; "virtualMinBufferPx": { "alias": "virtualMinBufferPx"; "required": false; }; "tableMainElement": { "alias": "tableMainElement"; "required": false; }; "virtualForTrackBy": { "alias": "virtualForTrackBy"; "required": false; }; "verticalScrollBarWidth": { "alias": "verticalScrollBarWidth"; "required": false; }; "noDataVirtualHeight": { "alias": "noDataVirtualHeight"; "required": false; }; }, {}, 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 NzTableVirtualScrollDirective<T> {
    templateRef: TemplateRef<{
        $implicit: T;
        index: number;
    }>;
    static ngTemplateContextGuard<T>(_dir: NzTableVirtualScrollDirective<T>, _ctx: NzSafeAny): _ctx is {
        $implicit: T;
        index: number;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableVirtualScrollDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzTableVirtualScrollDirective<any>, "[nz-virtual-scroll]", ["nzVirtualScroll"], {}, {}, never, never, true, never>;
}

declare class NzTableComponent<T> implements OnInit, OnChanges, AfterViewInit {
    readonly _nzModuleName: NzConfigKey;
    private elementRef;
    private nzResizeObserver;
    private cdr;
    private nzTableStyleService;
    private nzTableDataService;
    protected readonly dir: i0.WritableSignal<_angular_cdk_bidi.Direction>;
    private destroyRef;
    nzTableLayout: NzTableLayout;
    nzShowTotal: TemplateRef<{
        $implicit: number;
        range: [number, number];
    }> | null;
    nzItemRender: TemplateRef<PaginationItemRenderContext> | null;
    nzTitle: string | TemplateRef<NzSafeAny> | null;
    nzFooter: string | TemplateRef<NzSafeAny> | null;
    nzNoResult: string | TemplateRef<NzSafeAny> | undefined;
    nzPageSizeOptions: number[];
    nzVirtualItemSize: number;
    nzVirtualMaxBufferPx: number;
    nzVirtualMinBufferPx: number;
    nzVirtualForTrackBy: TrackByFunction<T>;
    nzLoadingDelay: number;
    nzPageIndex: number;
    nzPageSize: number;
    nzTotal: number;
    nzWidthConfig: ReadonlyArray<string | null>;
    nzData: readonly T[];
    nzCustomColumn: NzCustomColumn[];
    nzPaginationPosition: NzTablePaginationPosition;
    nzScroll: {
        x?: string | null;
        y?: string | null;
    };
    noDataVirtualHeight: string;
    nzPaginationType: NzTablePaginationType;
    nzFrontPagination: boolean;
    nzTemplateMode: boolean;
    nzShowPagination: boolean;
    nzLoading: boolean;
    nzOuterBordered: boolean;
    nzLoadingIndicator: TemplateRef<NzSafeAny> | null;
    nzBordered: boolean;
    nzSize: NzTableSize;
    nzShowSizeChanger: boolean;
    nzHideOnSinglePage: boolean;
    nzShowQuickJumper: boolean;
    nzSimple: boolean;
    readonly nzPageSizeChange: EventEmitter<number>;
    readonly nzPageIndexChange: EventEmitter<number>;
    readonly nzQueryParams: EventEmitter<NzTableQueryParams>;
    readonly nzCurrentPageDataChange: EventEmitter<readonly T[]>;
    readonly nzCustomColumnChange: EventEmitter<readonly NzCustomColumn[]>;
    /** public data for ngFor tr */
    data: readonly T[];
    cdkVirtualScrollViewport?: CdkVirtualScrollViewport;
    scrollX: string | null;
    scrollY: string | null;
    theadTemplate: TemplateRef<NzSafeAny> | null;
    tfootTemplate: TemplateRef<NzSafeAny> | null;
    tfootFixed: NzTableSummaryFixedType | null;
    listOfAutoColWidth: ReadonlyArray<string | null>;
    listOfManualColWidth: ReadonlyArray<string | null>;
    hasFixLeft: boolean;
    hasFixRight: boolean;
    showPagination: boolean;
    private templateMode$;
    nzVirtualScrollDirective: NzTableVirtualScrollDirective<T>;
    nzTableInnerScrollComponent: NzTableInnerScrollComponent<T>;
    verticalScrollBarWidth: number;
    onPageSizeChange(size: number): void;
    onPageIndexChange(index: number): void;
    constructor();
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    private setScrollOnChanges;
    private updateShowPagination;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableComponent<any>, "nz-table", ["nzTable"], { "nzTableLayout": { "alias": "nzTableLayout"; "required": false; }; "nzShowTotal": { "alias": "nzShowTotal"; "required": false; }; "nzItemRender": { "alias": "nzItemRender"; "required": false; }; "nzTitle": { "alias": "nzTitle"; "required": false; }; "nzFooter": { "alias": "nzFooter"; "required": false; }; "nzNoResult": { "alias": "nzNoResult"; "required": false; }; "nzPageSizeOptions": { "alias": "nzPageSizeOptions"; "required": false; }; "nzVirtualItemSize": { "alias": "nzVirtualItemSize"; "required": false; }; "nzVirtualMaxBufferPx": { "alias": "nzVirtualMaxBufferPx"; "required": false; }; "nzVirtualMinBufferPx": { "alias": "nzVirtualMinBufferPx"; "required": false; }; "nzVirtualForTrackBy": { "alias": "nzVirtualForTrackBy"; "required": false; }; "nzLoadingDelay": { "alias": "nzLoadingDelay"; "required": false; }; "nzPageIndex": { "alias": "nzPageIndex"; "required": false; }; "nzPageSize": { "alias": "nzPageSize"; "required": false; }; "nzTotal": { "alias": "nzTotal"; "required": false; }; "nzWidthConfig": { "alias": "nzWidthConfig"; "required": false; }; "nzData": { "alias": "nzData"; "required": false; }; "nzCustomColumn": { "alias": "nzCustomColumn"; "required": false; }; "nzPaginationPosition": { "alias": "nzPaginationPosition"; "required": false; }; "nzScroll": { "alias": "nzScroll"; "required": false; }; "noDataVirtualHeight": { "alias": "noDataVirtualHeight"; "required": false; }; "nzPaginationType": { "alias": "nzPaginationType"; "required": false; }; "nzFrontPagination": { "alias": "nzFrontPagination"; "required": false; }; "nzTemplateMode": { "alias": "nzTemplateMode"; "required": false; }; "nzShowPagination": { "alias": "nzShowPagination"; "required": false; }; "nzLoading": { "alias": "nzLoading"; "required": false; }; "nzOuterBordered": { "alias": "nzOuterBordered"; "required": false; }; "nzLoadingIndicator": { "alias": "nzLoadingIndicator"; "required": false; }; "nzBordered": { "alias": "nzBordered"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; "nzShowSizeChanger": { "alias": "nzShowSizeChanger"; "required": false; }; "nzHideOnSinglePage": { "alias": "nzHideOnSinglePage"; "required": false; }; "nzShowQuickJumper": { "alias": "nzShowQuickJumper"; "required": false; }; "nzSimple": { "alias": "nzSimple"; "required": false; }; }, { "nzPageSizeChange": "nzPageSizeChange"; "nzPageIndexChange": "nzPageIndexChange"; "nzQueryParams": "nzQueryParams"; "nzCurrentPageDataChange": "nzCurrentPageDataChange"; "nzCustomColumnChange": "nzCustomColumnChange"; }, ["nzVirtualScrollDirective"], ["*"], true, never>;
    static ngAcceptInputType_nzFrontPagination: unknown;
    static ngAcceptInputType_nzTemplateMode: unknown;
    static ngAcceptInputType_nzShowPagination: unknown;
    static ngAcceptInputType_nzLoading: unknown;
    static ngAcceptInputType_nzOuterBordered: unknown;
    static ngAcceptInputType_nzBordered: unknown;
    static ngAcceptInputType_nzShowSizeChanger: unknown;
    static ngAcceptInputType_nzHideOnSinglePage: unknown;
    static ngAcceptInputType_nzShowQuickJumper: unknown;
    static ngAcceptInputType_nzSimple: unknown;
}

declare class NzThAddOnComponent<T> implements OnChanges, OnInit {
    readonly _nzModuleName: NzConfigKey;
    nzConfigService: NzConfigService;
    private el;
    private destroyRef;
    private cdr;
    private ngZone;
    manualClickOrder$: Subject<NzThAddOnComponent<T>>;
    calcOperatorChange$: Subject<void>;
    nzFilterValue: NzTableFilterValue;
    sortOrder: NzTableSortOrder;
    sortDirections: NzTableSortOrder[];
    private sortOrderChange$;
    private isNzShowSortChanged;
    private isNzShowFilterChanged;
    nzColumnKey?: string;
    nzFilterMultiple: boolean;
    nzSortOrder: NzTableSortOrder;
    nzSortPriority: number | boolean;
    nzSortDirections: NzTableSortOrder[];
    nzFilters: NzTableFilterList;
    nzSortFn: NzTableSortFn<T> | boolean | null;
    nzFilterFn: NzTableFilterFn<T> | boolean | null;
    nzShowSort: boolean;
    nzShowFilter: boolean;
    nzCustomFilter: boolean;
    readonly nzCheckedChange: EventEmitter<boolean>;
    readonly nzSortOrderChange: EventEmitter<string | null>;
    readonly nzFilterChange: EventEmitter<any>;
    getNextSortDirection(sortDirections: NzTableSortOrder[], current: NzTableSortOrder): NzTableSortOrder;
    setSortOrder(order: NzTableSortOrder): void;
    clearSortOrder(): void;
    onFilterValueChange(value: NzTableFilterValue): void;
    updateCalcOperator(): void;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzThAddOnComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzThAddOnComponent<any>, "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", never, { "nzColumnKey": { "alias": "nzColumnKey"; "required": false; }; "nzFilterMultiple": { "alias": "nzFilterMultiple"; "required": false; }; "nzSortOrder": { "alias": "nzSortOrder"; "required": false; }; "nzSortPriority": { "alias": "nzSortPriority"; "required": false; }; "nzSortDirections": { "alias": "nzSortDirections"; "required": false; }; "nzFilters": { "alias": "nzFilters"; "required": false; }; "nzSortFn": { "alias": "nzSortFn"; "required": false; }; "nzFilterFn": { "alias": "nzFilterFn"; "required": false; }; "nzShowSort": { "alias": "nzShowSort"; "required": false; }; "nzShowFilter": { "alias": "nzShowFilter"; "required": false; }; "nzCustomFilter": { "alias": "nzCustomFilter"; "required": false; }; }, { "nzCheckedChange": "nzCheckedChange"; "nzSortOrderChange": "nzSortOrderChange"; "nzFilterChange": "nzFilterChange"; }, never, ["[nz-th-extra]", "nz-filter-trigger", "*"], true, never>;
    static ngAcceptInputType_nzShowSort: unknown;
    static ngAcceptInputType_nzShowFilter: unknown;
    static ngAcceptInputType_nzCustomFilter: unknown;
}

declare class NzTableCellDirective {
    isInsideTable: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableCellDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzTableCellDirective, "th:not(.nz-disable-th), td:not(.nz-disable-td)", 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 NzThMeasureDirective implements OnChanges {
    private renderer;
    private el;
    changes$: Subject<void>;
    nzWidth: string | null;
    colspan: string | number | null;
    colSpan: string | number | null;
    rowspan: string | number | null;
    rowSpan: string | number | null;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzThMeasureDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzThMeasureDirective, "th", never, { "nzWidth": { "alias": "nzWidth"; "required": false; }; "colspan": { "alias": "colspan"; "required": false; }; "colSpan": { "alias": "colSpan"; "required": false; }; "rowspan": { "alias": "rowspan"; "required": false; }; "rowSpan": { "alias": "rowSpan"; "required": false; }; }, {}, never, never, true, never>;
}

declare class NzTdAddOnComponent implements OnChanges {
    nzChecked: boolean;
    nzDisabled: boolean;
    nzIndeterminate: boolean;
    nzLabel: string | null;
    nzIndentSize: number;
    nzShowExpand: boolean;
    nzShowCheckbox: boolean;
    nzExpand: boolean;
    nzExpandIcon: TemplateRef<void> | null;
    readonly nzCheckedChange: EventEmitter<boolean>;
    readonly nzExpandChange: EventEmitter<boolean>;
    private isNzShowExpandChanged;
    private isNzShowCheckboxChanged;
    onCheckedChange(checked: boolean): void;
    onExpandChange(expand: boolean): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTdAddOnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTdAddOnComponent, "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", never, { "nzChecked": { "alias": "nzChecked"; "required": false; }; "nzDisabled": { "alias": "nzDisabled"; "required": false; }; "nzIndeterminate": { "alias": "nzIndeterminate"; "required": false; }; "nzLabel": { "alias": "nzLabel"; "required": false; }; "nzIndentSize": { "alias": "nzIndentSize"; "required": false; }; "nzShowExpand": { "alias": "nzShowExpand"; "required": false; }; "nzShowCheckbox": { "alias": "nzShowCheckbox"; "required": false; }; "nzExpand": { "alias": "nzExpand"; "required": false; }; "nzExpandIcon": { "alias": "nzExpandIcon"; "required": false; }; }, { "nzCheckedChange": "nzCheckedChange"; "nzExpandChange": "nzExpandChange"; }, never, ["*"], true, never>;
    static ngAcceptInputType_nzShowExpand: unknown;
    static ngAcceptInputType_nzShowCheckbox: unknown;
    static ngAcceptInputType_nzExpand: 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 NzCellFixedDirective implements OnChanges {
    private renderer;
    private el;
    nzRight: string | boolean;
    nzLeft: string | boolean;
    colspan: number | null;
    colSpan: number | null;
    changes$: Subject<void>;
    isAutoLeft: boolean;
    isAutoRight: boolean;
    isFixedLeft: boolean;
    isFixedRight: boolean;
    isFixed: boolean;
    setAutoLeftWidth(autoLeft: string | null): void;
    setAutoRightWidth(autoRight: string | null): void;
    setIsFirstRight(isFirstRight: boolean): void;
    setIsLastLeft(isLastLeft: boolean): void;
    private setFixClass;
    ngOnChanges(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzCellFixedDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzCellFixedDirective, "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", never, { "nzRight": { "alias": "nzRight"; "required": false; }; "nzLeft": { "alias": "nzLeft"; "required": false; }; "colspan": { "alias": "colspan"; "required": false; }; "colSpan": { "alias": "colSpan"; "required": false; }; }, {}, 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 NzTrDirective implements AfterContentInit {
    private destroyRef;
    listOfNzThDirective: QueryList<NzThMeasureDirective>;
    listOfCellFixedDirective: QueryList<NzCellFixedDirective>;
    private listOfFixedColumns$;
    private listOfColumns$;
    listOfFixedColumnsChanges$: Observable<NzCellFixedDirective[]>;
    listOfFixedLeftColumnChanges$: Observable<NzCellFixedDirective[]>;
    listOfFixedRightColumnChanges$: Observable<NzCellFixedDirective[]>;
    listOfColumnsChanges$: Observable<NzThMeasureDirective[]>;
    private nzTableStyleService;
    isInsideTable: boolean;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTrDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzTrDirective, "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])", never, {}, {}, ["listOfNzThDirective", "listOfCellFixedDirective"], never, true, never>;
}

declare class NzTheadComponent<T> implements AfterContentInit, AfterViewInit, OnInit {
    private nzTableStyleService;
    private nzTableDataService;
    private destroyRef;
    private el;
    private renderer;
    isInsideTable: boolean;
    templateRef: TemplateRef<NzSafeAny>;
    listOfNzTrDirective: QueryList<NzTrDirective>;
    listOfNzThAddOnComponent: QueryList<NzThAddOnComponent<T>>;
    readonly nzSortOrderChange: EventEmitter<{
        key: NzSafeAny;
        value: string | null;
    }>;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTheadComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTheadComponent<any>, "thead:not(.ant-table-thead)", never, {}, { "nzSortOrderChange": "nzSortOrderChange"; }, ["listOfNzTrDirective", "listOfNzThAddOnComponent"], ["*"], true, never>;
}

declare class NzTbodyComponent {
    showEmpty$: BehaviorSubject<boolean>;
    noResult$: BehaviorSubject<string | TemplateRef<any> | undefined>;
    listOfMeasureColumn$: BehaviorSubject<readonly string[]>;
    private nzTableStyleService;
    isInsideTable: boolean;
    constructor();
    onListOfAutoWidthChange(listOfAutoWidth: number[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTbodyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTbodyComponent, "tbody", never, {}, {}, never, ["*"], true, never>;
}

declare class NzTrExpandDirective {
    nzExpand: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTrExpandDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzTrExpandDirective, "tr[nzExpand]", never, { "nzExpand": { "alias": "nzExpand"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_nzExpand: unknown;
}

declare class NzTfootSummaryComponent implements OnInit, OnChanges {
    nzFixed: NzTableSummaryFixedType | null;
    templateRef: TemplateRef<NzSafeAny>;
    private nzTableStyleService;
    isInsideTable: boolean;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTfootSummaryComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTfootSummaryComponent, "tfoot[nzSummary]", never, { "nzFixed": { "alias": "nzFixed"; "required": false; }; }, {}, never, ["*"], true, never>;
    static ngAcceptInputType_nzFixed: NzTableSummaryFixedType | boolean | 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 NzCustomColumnDirective<T> implements OnInit {
    private el;
    private renderer;
    private nzTableDataService;
    private destroyRef;
    nzCellControl: string | null;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzCustomColumnDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzCustomColumnDirective<any>, "td[nzCellControl],th[nzCellControl]", never, { "nzCellControl": { "alias": "nzCellControl"; "required": false; }; }, {}, never, never, true, never>;
}

declare class NzTableContentComponent {
    tableLayout: NzTableLayout;
    theadTemplate: TemplateRef<NzSafeAny> | null;
    contentTemplate: TemplateRef<NzSafeAny> | null;
    tfootTemplate: TemplateRef<NzSafeAny> | null;
    listOfColWidth: ReadonlyArray<string | null>;
    scrollX: string | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableContentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableContentComponent, "table[nz-table-content]", never, { "tableLayout": { "alias": "tableLayout"; "required": false; }; "theadTemplate": { "alias": "theadTemplate"; "required": false; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; }; "tfootTemplate": { "alias": "tfootTemplate"; "required": false; }; "listOfColWidth": { "alias": "listOfColWidth"; "required": false; }; "scrollX": { "alias": "scrollX"; "required": false; }; }, {}, 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 NzTableTitleFooterComponent {
    title: string | TemplateRef<NzSafeAny> | null;
    footer: string | TemplateRef<NzSafeAny> | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableTitleFooterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableTitleFooterComponent, "nz-table-title-footer", never, { "title": { "alias": "title"; "required": false; }; "footer": { "alias": "footer"; "required": false; }; }, {}, 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 NzTableInnerDefaultComponent {
    tableLayout: NzTableLayout;
    listOfColWidth: ReadonlyArray<string | null>;
    theadTemplate: TemplateRef<NzSafeAny> | null;
    contentTemplate: TemplateRef<NzSafeAny> | null;
    tfootTemplate: TemplateRef<NzSafeAny> | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableInnerDefaultComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableInnerDefaultComponent, "nz-table-inner-default", never, { "tableLayout": { "alias": "tableLayout"; "required": false; }; "listOfColWidth": { "alias": "listOfColWidth"; "required": false; }; "theadTemplate": { "alias": "theadTemplate"; "required": false; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; }; "tfootTemplate": { "alias": "tfootTemplate"; "required": false; }; }, {}, 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 NzTrMeasureComponent implements AfterViewInit {
    private nzResizeObserver;
    private ngZone;
    private destroyRef;
    listOfMeasureColumn: readonly string[];
    readonly listOfAutoWidth: EventEmitter<number[]>;
    listOfTdElement: QueryList<ElementRef>;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTrMeasureComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTrMeasureComponent, "tr[nz-table-measure-row]", never, { "listOfMeasureColumn": { "alias": "listOfMeasureColumn"; "required": false; }; }, { "listOfAutoWidth": "listOfAutoWidth"; }, never, never, true, never>;
}

declare class NzRowIndentDirective {
    indentSize: number;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzRowIndentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzRowIndentDirective, "nz-row-indent", never, { "indentSize": { "alias": "indentSize"; "required": false; }; }, {}, 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 NzRowExpandButtonDirective {
    expand: boolean;
    spaceMode: boolean;
    readonly expandChange: EventEmitter<any>;
    onHostClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzRowExpandButtonDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzRowExpandButtonDirective, "button[nz-row-expand-button]", never, { "expand": { "alias": "expand"; "required": false; }; "spaceMode": { "alias": "spaceMode"; "required": false; }; }, { "expandChange": "expandChange"; }, never, never, true, never>;
}

declare class NzCellBreakWordDirective {
    nzBreakWord: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzCellBreakWordDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzCellBreakWordDirective, "th[nzBreakWord],td[nzBreakWord]", never, { "nzBreakWord": { "alias": "nzBreakWord"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_nzBreakWord: unknown;
}

declare class NzCellAlignDirective {
    nzAlign: 'left' | 'right' | 'center' | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzCellAlignDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzCellAlignDirective, "th[nzAlign],td[nzAlign]", never, { "nzAlign": { "alias": "nzAlign"; "required": false; }; }, {}, never, never, true, never>;
}

declare class NzTableSortersComponent implements OnChanges {
    sortDirections: NzTableSortOrder[];
    sortOrder: NzTableSortOrder;
    contentTemplate: TemplateRef<NzSafeAny> | null;
    isUp: boolean;
    isDown: boolean;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableSortersComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableSortersComponent, "nz-table-sorters", never, { "sortDirections": { "alias": "sortDirections"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; }; }, {}, never, never, true, never>;
}

interface NzThItemInterface {
    text: string;
    value: NzSafeAny;
    checked: boolean;
}
declare class NzTableFilterComponent implements OnChanges, OnInit {
    private readonly cdr;
    private readonly i18n;
    private readonly destroyRef;
    contentTemplate: TemplateRef<NzSafeAny> | null;
    customFilter: boolean;
    extraTemplate: TemplateRef<NzSafeAny> | null;
    filterMultiple: boolean;
    listOfFilter: NzTableFilterList;
    readonly filterChange: EventEmitter<any>;
    locale: NzTableI18nInterface;
    isChecked: boolean;
    isVisible: boolean;
    listOfParsedFilter: NzThItemInterface[];
    listOfChecked: NzSafeAny[];
    check(filter: NzThItemInterface): void;
    confirm(): void;
    reset(): void;
    onVisibleChange(value: boolean): void;
    emitFilterData(): void;
    parseListOfFilter(listOfFilter: NzTableFilterList, reset?: boolean): NzThItemInterface[];
    getCheckedStatus(listOfParsedFilter: NzThItemInterface[]): boolean;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableFilterComponent, "nz-table-filter", never, { "contentTemplate": { "alias": "contentTemplate"; "required": false; }; "customFilter": { "alias": "customFilter"; "required": false; }; "extraTemplate": { "alias": "extraTemplate"; "required": false; }; "filterMultiple": { "alias": "filterMultiple"; "required": false; }; "listOfFilter": { "alias": "listOfFilter"; "required": false; }; }, { "filterChange": "filterChange"; }, 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 NzTableSelectionComponent {
    listOfSelections: Array<{
        text: string;
        onSelect(...args: NzSafeAny[]): NzSafeAny;
    }>;
    checked: boolean;
    disabled: boolean;
    indeterminate: boolean;
    label: string | null;
    showCheckbox: boolean;
    showRowSelection: boolean;
    readonly checkedChange: EventEmitter<boolean>;
    onCheckedChange(checked: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableSelectionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableSelectionComponent, "nz-table-selection", never, { "listOfSelections": { "alias": "listOfSelections"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; }; "showRowSelection": { "alias": "showRowSelection"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
}

declare class NzCellEllipsisDirective {
    nzEllipsis: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzCellEllipsisDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NzCellEllipsisDirective, "th[nzEllipsis],td[nzEllipsis]", never, { "nzEllipsis": { "alias": "nzEllipsis"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_nzEllipsis: 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 NzFilterTriggerComponent implements OnInit {
    readonly _nzModuleName: NzConfigKey;
    readonly nzConfigService: NzConfigService;
    private readonly cdr;
    private readonly destroyRef;
    nzActive: boolean;
    nzDropdownMenu: NzDropdownMenuComponent;
    nzVisible: boolean;
    nzBackdrop: boolean;
    readonly nzVisibleChange: EventEmitter<boolean>;
    nzDropdown: ElementRef<HTMLElement>;
    onVisibleChange(visible: boolean): void;
    hide(): void;
    show(): void;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzFilterTriggerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzFilterTriggerComponent, "nz-filter-trigger", ["nzFilterTrigger"], { "nzActive": { "alias": "nzActive"; "required": false; }; "nzDropdownMenu": { "alias": "nzDropdownMenu"; "required": false; }; "nzVisible": { "alias": "nzVisible"; "required": false; }; "nzBackdrop": { "alias": "nzBackdrop"; "required": false; }; }, { "nzVisibleChange": "nzVisibleChange"; }, never, ["*"], true, never>;
    static ngAcceptInputType_nzBackdrop: unknown;
}

declare class NzTableFixedRowComponent implements OnInit, AfterViewInit {
    private nzTableStyleService;
    private renderer;
    private destroyRef;
    tdElement: ElementRef;
    hostWidth$: BehaviorSubject<number | null>;
    enableAutoMeasure$: BehaviorSubject<boolean>;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableFixedRowComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTableFixedRowComponent, "tr[nz-table-fixed-row], tr[nzExpand]", 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 NzThSelectionComponent implements OnChanges {
    nzSelections: Array<{
        text: string;
        onSelect(...args: NzSafeAny[]): NzSafeAny;
    }>;
    nzChecked: boolean;
    nzDisabled: boolean;
    nzIndeterminate: boolean;
    nzLabel: string | null;
    nzShowCheckbox: boolean;
    nzShowRowSelection: boolean;
    readonly nzCheckedChange: EventEmitter<boolean>;
    private isNzShowExpandChanged;
    private isNzShowCheckboxChanged;
    onCheckedChange(checked: boolean): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzThSelectionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzThSelectionComponent, "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", never, { "nzSelections": { "alias": "nzSelections"; "required": false; }; "nzChecked": { "alias": "nzChecked"; "required": false; }; "nzDisabled": { "alias": "nzDisabled"; "required": false; }; "nzIndeterminate": { "alias": "nzIndeterminate"; "required": false; }; "nzLabel": { "alias": "nzLabel"; "required": false; }; "nzShowCheckbox": { "alias": "nzShowCheckbox"; "required": false; }; "nzShowRowSelection": { "alias": "nzShowRowSelection"; "required": false; }; }, { "nzCheckedChange": "nzCheckedChange"; }, never, ["*"], true, never>;
    static ngAcceptInputType_nzChecked: unknown;
    static ngAcceptInputType_nzDisabled: unknown;
    static ngAcceptInputType_nzShowCheckbox: unknown;
    static ngAcceptInputType_nzShowRowSelection: unknown;
}

declare class NzTableModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzTableModule, never, [typeof NzTableComponent, typeof NzThAddOnComponent, typeof NzTableCellDirective, typeof NzThMeasureDirective, typeof NzTdAddOnComponent, typeof NzTheadComponent, typeof NzTbodyComponent, typeof NzTrDirective, typeof NzTrExpandDirective, typeof NzTfootSummaryComponent, typeof NzTableVirtualScrollDirective, typeof NzCellFixedDirective, typeof NzCustomColumnDirective, typeof NzTableContentComponent, typeof NzTableTitleFooterComponent, typeof NzTableInnerDefaultComponent, typeof NzTableInnerScrollComponent, typeof NzTrMeasureComponent, typeof NzRowIndentDirective, typeof NzRowExpandButtonDirective, typeof NzCellBreakWordDirective, typeof NzCellAlignDirective, typeof NzTableSortersComponent, typeof NzTableFilterComponent, typeof NzTableSelectionComponent, typeof NzCellEllipsisDirective, typeof NzFilterTriggerComponent, typeof NzTableFixedRowComponent, typeof NzThSelectionComponent], [typeof NzTableComponent, typeof NzThAddOnComponent, typeof NzTableCellDirective, typeof NzThMeasureDirective, typeof NzTdAddOnComponent, typeof NzTheadComponent, typeof NzTbodyComponent, typeof NzTrDirective, typeof NzTableVirtualScrollDirective, typeof NzCellFixedDirective, typeof NzCustomColumnDirective, typeof NzFilterTriggerComponent, typeof NzTrExpandDirective, typeof NzTfootSummaryComponent, typeof NzCellBreakWordDirective, typeof NzCellAlignDirective, typeof NzCellEllipsisDirective, typeof NzTableFixedRowComponent, typeof NzThSelectionComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzTableModule>;
}

declare class NzTableDataService<T> {
    private destroyRef;
    private pageIndex$;
    private frontPagination$;
    private pageSize$;
    private listOfData$;
    listOfCustomColumn$: BehaviorSubject<NzCustomColumn[]>;
    pageIndexDistinct$: Observable<number>;
    pageSizeDistinct$: Observable<number>;
    listOfCalcOperator$: BehaviorSubject<{
        key?: string;
        sortFn: NzTableSortFn<T> | null | boolean;
        sortOrder: NzTableSortOrder;
        filterFn: NzTableFilterFn<T> | null | boolean;
        filterValue: NzTableFilterValue;
        sortPriority: number | boolean;
    }[]>;
    queryParams$: Observable<NzTableQueryParams>;
    private listOfDataAfterCalc$;
    private listOfFrontEndCurrentPageData$;
    listOfCurrentPageData$: Observable<T[]>;
    total$: Observable<number>;
    updatePageSize(size: number): void;
    updateFrontPagination(pagination: boolean): void;
    updatePageIndex(index: number): void;
    updateListOfData(list: readonly T[]): void;
    updateListOfCustomColumn(list: NzCustomColumn[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableDataService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NzTableDataService<any>>;
}

declare class NzTableStyleService {
    theadTemplate$: ReplaySubject<TemplateRef<any>>;
    tfootTemplate$: ReplaySubject<TemplateRef<any>>;
    tfootFixed$: ReplaySubject<NzTableSummaryFixedType | null>;
    hasFixLeft$: ReplaySubject<boolean>;
    hasFixRight$: ReplaySubject<boolean>;
    hostWidth$: ReplaySubject<number>;
    columnCount$: ReplaySubject<number>;
    showEmpty$: ReplaySubject<boolean>;
    noResult$: ReplaySubject<string | TemplateRef<any> | undefined>;
    private listOfThWidthConfigPx$;
    private tableWidthConfigPx$;
    manualWidthConfigPx$: rxjs.Observable<readonly (string | null)[]>;
    private listOfAutoWidthPx$;
    listOfListOfThWidthPx$: rxjs.Observable<readonly (string | null)[]>;
    listOfMeasureColumn$: ReplaySubject<readonly string[]>;
    listOfListOfThWidth$: rxjs.Observable<number[]>;
    enableAutoMeasure$: ReplaySubject<boolean>;
    setTheadTemplate(template: TemplateRef<NzSafeAny>): void;
    setTfootTemplate(template: TemplateRef<NzSafeAny>): void;
    setTfootFixed(fixed: NzTableSummaryFixedType | null): void;
    setHasFixLeft(hasFixLeft: boolean): void;
    setHasFixRight(hasFixRight: boolean): void;
    setTableWidthConfig(widthConfig: ReadonlyArray<string | null>): void;
    setListOfTh(listOfTh: readonly NzThMeasureDirective[]): void;
    setListOfMeasureColumn(listOfTh: readonly NzThMeasureDirective[]): void;
    setListOfAutoWidth(listOfAutoWidth: number[]): void;
    setShowEmpty(showEmpty: boolean): void;
    setNoResult(noResult: string | TemplateRef<NzSafeAny> | undefined): void;
    setScroll(scrollX: string | null, scrollY: string | null): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTableStyleService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NzTableStyleService>;
}

export { NzCellAlignDirective, NzCellBreakWordDirective, NzCellEllipsisDirective, NzCellFixedDirective, NzCustomColumnDirective, NzFilterTriggerComponent, NzRowExpandButtonDirective, NzRowIndentDirective, NzTableCellDirective, NzTableComponent, NzTableContentComponent, NzTableDataService, NzTableFilterComponent, NzTableFixedRowComponent, NzTableInnerDefaultComponent, NzTableInnerScrollComponent, NzTableModule, NzTableSelectionComponent, NzTableSortersComponent, NzTableStyleService, NzTableTitleFooterComponent, NzTableVirtualScrollDirective, NzTbodyComponent, NzTdAddOnComponent, NzTfootSummaryComponent, NzThAddOnComponent, NzThMeasureDirective, NzThSelectionComponent, NzTheadComponent, NzTrDirective, NzTrExpandDirective, NzTrMeasureComponent };
export type { NzCustomColumn, NzTableFilterFn, NzTableFilterList, NzTableFilterValue, NzTableLayout, NzTablePaginationPosition, NzTablePaginationType, NzTableQueryParams, NzTableSize, NzTableSortFn, NzTableSortOrder, NzTableSummaryFixedType };
