import { Observable } from 'rxjs'; import { InjectionToken } from '@angular/core'; import { Direction } from '@angular/cdk/bidi'; import { PblNgridConfigService, PblNgridEvents } from '@pebula/ngrid/core'; import { _PblNgridComponent } from '../tokens'; import { PblCdkTableComponent } from '../grid/pbl-cdk-table/pbl-cdk-table.component'; import { ContextApi } from '../grid/context/api'; import { PblNgridRegistryService } from '../grid/registry/registry.service'; import { ColumnApi, PblColumnStore } from '../grid/column/management'; import { PblNgridColumnWidthCalc } from '../grid/column/width-logic/column-width-calc'; import { PblCdkVirtualScrollViewportComponent } from '../grid/features/virtual-scroll/virtual-scroll-viewport.component'; import { NotifyPropChangeMethod, OnPropChangedEvent } from './types'; import { RowsApi, PblRowsApi } from '../grid/row'; import { PblNgridPluginContext, PblNgridPluginController } from './plugin-control'; import { Logicaps } from '../grid/logicap/index'; export declare const EXT_API_TOKEN: InjectionToken; export interface PblNgridExtensionApi { grid: _PblNgridComponent; element: HTMLElement; config: PblNgridConfigService; /** * The registry instance bound to the current instance. * This registry instance lifespan is similar to the grid's component, it will get destroyed when the grid gets destroyed. */ registry: PblNgridRegistryService; propChanged: Observable; cdkTable: PblCdkTableComponent; columnStore: PblColumnStore; contextApi: ContextApi; columnApi: ColumnApi; rowsApi: RowsApi; events: Observable; pluginCtrl: PblNgridPluginController; widthCalc: PblNgridColumnWidthCalc; onConstructed(fn: () => void): void; onInit(fn: () => void): void; getDirection(): Direction; directionChange(): Observable; } export interface PblNgridInternalExtensionApi extends PblNgridExtensionApi { viewport: PblCdkVirtualScrollViewportComponent; plugin: PblNgridPluginContext; rowsApi: PblRowsApi; setViewport(viewport: PblCdkVirtualScrollViewportComponent): void; setCdkTable(cdkTable: PblCdkTableComponent): void; notifyPropChanged: NotifyPropChangeMethod; logicaps: Logicaps; }