import { SerializableModel } from '@devexpress/analytics-core/analytics-elements'; import { Disposable, ModelSerializer } from '@devexpress/analytics-core/analytics-utils'; import * as ko from 'knockout'; import { CrossTabFieldModel, XRCrossTabViewModel } from '../xrCrossTab'; import { CellKind } from './enums'; export interface ICrossTabCell { _columnIndex: ko.Observable; _rowIndex: ko.Observable; _columnSpan: ko.Observable; _rowSpan: ko.Observable; kind: ko.Observable; dataLevel?: number; rowLevel?: number; columnLevel?: number; field?: ko.Observable; dependentFields: CrossTabFieldModel[]; } export declare class CrossTabCellInfo extends SerializableModel implements ICrossTabCell { constructor(model: any, serializer?: ModelSerializer); _columnIndex: ko.Observable; _rowIndex: ko.Observable; _columnSpan: ko.Observable; _rowSpan: ko.Observable; kind: ko.Observable; field: ko.Observable; dataLevel: number; rowLevel: number; columnLevel: number; dependentFields: CrossTabFieldModel[]; } export declare class CellCreator extends Disposable { protected crossTab: XRCrossTabViewModel; get rowFieldCount(): number; get columnFieldCount(): number; get dataFieldCount(): number; get rowDataCount(): number; get columnDataCount(): number; constructor(crossTab: XRCrossTabViewModel); nextRowIndex(cell: ICrossTabCell): number; lastRowIndex(cell: ICrossTabCell): number; nextColumnIndex(cell: ICrossTabCell): number; lastColumnIndex(cell: ICrossTabCell): number; setCellKind(cell: ICrossTabCell, kind: CellKind): void; setLevel(cell: ICrossTabCell, dataLevel: number, columnLevel: number, rowLevel: number): void; setDataLevel(cell: ICrossTabCell, level: number): void; setColumnLevel(cell: ICrossTabCell, level: number): void; setRowLevel(cell: ICrossTabCell, level: number): void; indexToLevel(index: number, count: number): number; setLayout(cell: ICrossTabCell, columnIndex: any, rowIndex: any, columnSpan: any, rowSpan: any): void; static createInstance(crossTab: XRCrossTabViewModel): CellCreator | HorizontalCreator | VerticalCreator; create(): any[]; creator(cellKind: CellKind): ICrossTabCell; createCorners(columnCount: number, rowCount: number): ICrossTabCell[]; createDataHeaders(): any[]; createDataHeader(columnIndex: any, rowIndex: any, dataLevel: any, columnLevel?: number, rowLevel?: number): ICrossTabCell; createData(): ICrossTabCell[]; createDataCell(colIndex: number, rowIndex: number, level: number): ICrossTabCell; createColumnTotals(startColumnIndex: number, startRowIndex: number, dataCount: number): any[]; createColumnTotal(columnIndex: number, rowIndex: number, dataLevel: number, columnLevel: number): ICrossTabCell; createRowTotals(startColumnIndex: number, startRowIndex: number, dataCount: number): any[]; createRowTotal(columnIndex: any, rowIndex: any, dataLevel: any, rowLevel: any): ICrossTabCell; createGrandTotals(dataItems: ICrossTabCell[], startRowIndex: number, startColumnIndex: number, columnInc: number, rowInc: number): any[]; createGrandTotal(dataLevel: any, columnLevel: any, rowLevel: any): ICrossTabCell; setGrandTotalLayout(cells: ICrossTabCell, inc: number, columnIndex: any, rowIndex: any): void; createColumnHeaders(startColumnIndex: number, columnSpan: number, dataCount: number): any[]; createColumnTotalHeaders(startColumnIndex: number, startRowIndex: number, rowSpan: number, dataCount: number): any[]; createRowHeaders(startRowIndex: number, rowSpan: number, dataCount: number): any[]; createRowTotalHeaders(startColumnIndex: number, columnSpan: number, startRowIndex: number, dataCount: number): any[]; createEmptyHeaders(columnSpan: number): any[]; createEmptyCells(dataCount: number): any[]; createEmptyHeader(level: number): ICrossTabCell; createEmptyCell(level: number): ICrossTabCell; createColumnTotalHeader(level: number): ICrossTabCell; createColumnGrandTotalHeader(): ICrossTabCell; createRowTotalHeader(level: number): ICrossTabCell; createRowGrandTotalHeader(): ICrossTabCell; lastCorner: ICrossTabCell; } export declare class HorizontalCreator extends CellCreator { get columnDataCount(): number; createCorners(columnCount: number, rowCount: number): ICrossTabCell[]; createDataHeaders(): any[]; createData(): any[]; createRowTotals(startColumnIndex: number, startRowIndex: number, dataCount: number): any[]; createColumnTotals(startColumnIndex: number, startRowIndex: number, dataCount: number): any[]; createGrandTotals(dataItems: ICrossTabCell[], startRowIndex: number, startColumnIndex: number, columnIndex: number, rowIndex: number): any[]; createColumnTotal(columnIndex: number, rowIndex: number, dataLevel: number, columnLevel: number): ICrossTabCell; createRowTotal(columnIndex: number, rowIndex: number, dataLevel: number, rowLevel: number): ICrossTabCell; createEmptyHeaders(columnSpan: number): any[]; } export declare class VerticalCreator extends CellCreator { get rowDataCount(): number; createCorners(columnCount: number, rowCount: number): ICrossTabCell[]; createDataHeaders(): any[]; createData(): any[]; createRowTotals(startColumnIndex: number, startRowIndex: number, dataCount: number): any[]; createColumnTotals(startColumnIndex: number, startRowIndex: number, dataCount: number): any[]; createColumnTotal(columnIndex: number, rowIndex: number, dataLevel: number, columnLevel: number): ICrossTabCell; createRowTotal(columnIndex: number, rowIndex: number, dataLevel: number, rowLevel: number): ICrossTabCell; createGrandTotals(dataItems: ICrossTabCell[], startRowIndex: number, startColumnIndex: number, columnIndex: number, rowIndex: number): any[]; setGrandTotalLayout(items: ICrossTabCell, inc: number, columnIndex: any, rowIndex: any): void; createEmptyCells(dataCount: number): any[]; }