/**
 * 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
 */
import { EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { CandyDate } from 'ng-zorro-antd/core/time';
import { FunctionProp, NzSafeAny } from 'ng-zorro-antd/core/types';
import { isNonEmptyString, isTemplateRef } from 'ng-zorro-antd/core/util';
import { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';
import { DateBodyRow, DateCell } from './interface';
import * as i0 from "@angular/core";
export declare abstract class AbstractTable implements OnInit, OnChanges {
    isTemplateRef: typeof isTemplateRef;
    isNonEmptyString: typeof isNonEmptyString;
    headRow: DateCell[];
    bodyRows: DateBodyRow[];
    MAX_ROW: number;
    MAX_COL: number;
    prefixCls: string;
    value: CandyDate;
    locale: NzCalendarI18nInterface;
    activeDate: CandyDate;
    showWeek: boolean;
    selectedValue: CandyDate[];
    hoverValue: CandyDate[];
    disabledDate?: (d: Date) => boolean;
    cellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;
    fullCellRender?: string | TemplateRef<Date> | FunctionProp<TemplateRef<Date> | string>;
    canSelectWeek: boolean;
    readonly valueChange: EventEmitter<CandyDate>;
    readonly cellHover: EventEmitter<CandyDate>;
    protected render(): void;
    trackByBodyRow(_index: number, item: DateBodyRow): NzSafeAny;
    trackByBodyColumn(_index: number, item: DateCell): NzSafeAny;
    hasRangeValue(): boolean;
    getClassMap(cell: DateCell): {
        [key: string]: boolean;
    };
    abstract makeHeadRow(): DateCell[];
    abstract makeBodyRows(): DateBodyRow[];
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private isDateRealChange;
    private isSameDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTable, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractTable, never, never, { "prefixCls": "prefixCls"; "value": "value"; "locale": "locale"; "activeDate": "activeDate"; "showWeek": "showWeek"; "selectedValue": "selectedValue"; "hoverValue": "hoverValue"; "disabledDate": "disabledDate"; "cellRender": "cellRender"; "fullCellRender": "fullCellRender"; "canSelectWeek": "canSelectWeek"; }, { "valueChange": "valueChange"; "cellHover": "cellHover"; }, never, never, false, never>;
}
