import { AfterViewInit, ChangeDetectorRef, Injector, OnInit, ElementRef, DoCheck, OnDestroy, ViewContainerRef, ComponentRef } from '@angular/core';
import { _PblNgridComponent } from '../../tokens';
import { PblNgridInternalExtensionApi } from '../../ext/grid-ext-api';
import { GridRowType, PblRowTypeToCellTypeMap } from './types';
import { PblRowTypeToColumnTypeMap } from '../column/management';
import * as i0 from "@angular/core";
export declare const PBL_NGRID_BASE_ROW_TEMPLATE = "";
export declare abstract class PblNgridBaseRowComponent implements OnInit, DoCheck, AfterViewInit, OnDestroy {
readonly cdRef: ChangeDetectorRef;
grid: _PblNgridComponent;
_viewRef: ViewContainerRef;
readonly element: HTMLElement;
get height(): number;
get cellsLength(): number;
/**
* An attached row will run change detection on it's children.
* All rows are attached by default.
*/
get attached(): boolean;
abstract readonly rowType: TRowType;
abstract get rowIndex(): number;
protected _extApi: PblNgridInternalExtensionApi;
protected _cells: ComponentRef>[];
protected cellInjector: Injector;
private _attached;
constructor(grid: _PblNgridComponent, cdRef: ChangeDetectorRef, elementRef: ElementRef);
ngOnInit(): void;
ngAfterViewInit(): void;
ngDoCheck(): void;
ngOnDestroy(): void;
/**
* Marks the row as attached.
* Rows are attached by default.
* An attached row takes part in the change detection process
*/
_attach(): boolean;
/**
* Marks the row as detached.
* A detached row DOWS NOT take part in the change detection process.
*
* Usually when the rendering engine cache row elements for performance, these should be detached when cached and re-attached when returned into view.
*/
_detach(): boolean;
_createCell(column: PblRowTypeToColumnTypeMap, atIndex?: number): void;
_destroyCell(cellOrCellIndex: number | ComponentRef>): void;
_moveCell(fromIndex: number, toIndex: number): void;
protected abstract detectChanges(): any;
protected abstract onCtor(): any;
protected canCreateCell?(column: PblRowTypeToColumnTypeMap, atIndex?: number): boolean;
protected canDestroyCell?(cell: ComponentRef>): boolean;
protected canMoveCell?(fromIndex: number, toIndex: number, cell: ComponentRef>): boolean;
protected cellCreated?(column: PblRowTypeToColumnTypeMap, cell: ComponentRef>): any;
protected cellDestroyed?(cell: ComponentRef>, previousIndex: number): any;
protected cellMoved?(previousItem: ComponentRef>, currentItem: ComponentRef>, previousIndex: number, currentIndex: number): any;
protected createComponent(column: PblRowTypeToColumnTypeMap, atIndex?: number): ComponentRef>;
/**
* Resolves the extensions API and the injector to be used when creating cells.
*/
protected resolveTokens(): void;
static ɵfac: i0.ɵɵFactoryDeclaration, [{ optional: true; }, null, null]>;
static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, {}, {}, never, never, false>;
}