import { EventEmitter, OnChanges, ViewContainerRef } from '@angular/core';
import { TemplateContext, TemplateLoaderBaseComponent } from '../common/template-loader-base.component';
import { FormFieldContainer } from '../form/form-field/form-field-container';
import { DataTableDataItem, DataTableRenderedItem } from './data-table-contract';
import * as i0 from "@angular/core";
export interface DataTableTemplateContext extends TemplateContext<DataTableDataItem> {
    rowIndex: number;
    renderedItem: DataTableRenderedItem;
    formFieldContainer: FormFieldContainer;
}
export declare class DataTableTemplateLoaderComponent extends TemplateLoaderBaseComponent<DataTableDataItem, DataTableTemplateContext> implements OnChanges, FormFieldContainer {
    field: string;
    /**
     * The index of the row for this template
     */
    rowIndex: number;
    renderedItem: DataTableRenderedItem;
    validationAlert: EventEmitter<{
        renderedItem: DataTableRenderedItem;
        alert: any;
    }>;
    dataChanged: EventEmitter<{
        renderedItem: DataTableRenderedItem;
        field: string;
    }>;
    /**
     * Instantiates a new instance of DataTableTemplateLoaderComponent
     * @param viewContainer the reference to this elements view container
     */
    constructor(viewContainer: ViewContainerRef);
    updateAlert(alert: any): void;
    checkValidation(): boolean;
    immediateValidation(): boolean;
    isDirty(): boolean;
    reportChange(): void;
    /**
     * Creates the context for our embeded view
     */
    protected createContext(): DataTableTemplateContext;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataTableTemplateLoaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DataTableTemplateLoaderComponent, "sme-data-table-template-loader", never, { "field": "field"; "rowIndex": "rowIndex"; "renderedItem": "renderedItem"; }, { "validationAlert": "validationAlert"; "dataChanged": "dataChanged"; }, never, never, false, never>;
}
