import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
import { FVAbstractControl } from '../../../shared/abstract-control.component';
import { ProcessService } from '../../../../services/process.service';
import { ApiService, DGSNotificationService } from '@dotgov/core';
import { ValidationService } from '../../../../services/validation.service';
import { GridConfig, DockItem, Dock, FVDoneResponse } from '../../../../models';
/**
 * @Author [GrigoreMe](https://github.com/grigoreme)
 */
export declare class FVControlsEditableGridComponent extends FVAbstractControl implements AfterViewInit, OnDestroy {
    private process;
    private api;
    private ref;
    private validation;
    private notification;
    lookupGrid: GridConfig;
    loading: boolean;
    showModal: boolean;
    addAction: DockItem;
    editAction: DockItem;
    deleteAction: DockItem;
    activeKeyfield: any;
    modalTitle: string;
    private _fakeEdit;
    private _activeDialog;
    private _activePage;
    onDoneFired: EventEmitter<any>;
    onDone: EventEmitter<FVDoneResponse>;
    constructor(process: ProcessService, api: ApiService, ref: ChangeDetectorRef, validation: ValidationService, notification: DGSNotificationService);
    ngAfterViewInit(): void;
    /**
     * Tells all other components about add-new modal must be triggered.
     * Here multiple grids start to communicate with each other.
     */
    onAddRowClick(): void;
    /**
     * On `Edit` Button clicked.
     * @param row ObjectLiteral.
     */
    onEditRowClick(row: object): void;
    onDeleteRowClick(): void;
    onDeleteConfirm(): void;
    onDeleteCancel(): void;
    closeModal(): void;
    /**
     * Triggered on editableGrid updated.
     * Scans for any error and do corresponding update.
     * @param doneResponse
     */
    doAction(doneResponse: FVDoneResponse, forced?: boolean): Promise<boolean>;
    onGridHandler(handle: any): void;
    get canAddNew(): boolean;
    /**
     * Returns list of items docked to the top.
     */
    get dockedTop(): Dock[];
    /**
     * Returns list of items docked to the bottom.
     */
    get dockedBottom(): Dock[];
    get defaultDockedTop(): Dock[];
    get defaultDockedBottom(): Dock[];
    get docked(): Dock[];
    get activeDialog(): DockItem;
    get activeDialogName(): string;
    /**
     * Transform form filter into final object.
     * @param controlRef
     * @param toParse
     */
    private parseFormFilter;
    /**
     * Triggers add-new modal.
     */
    private triggerAddNew;
    /**
     * Do form save then tell new component to do whatever is needed.
     * @param changeVal
     */
    private prepareForAddNew;
    /**
     * Trigers add new after pre-save been done.
     * @param changeVal
     */
    private afterPreAddNewSaveDone;
    /**
     * After add add new preparation done.
     * @param changeName
     * @param changeVal
     * @param isTarget
     */
    private prepareForAddNewDone;
    /**
     * When first save been done, switch to update mode without changing form.
     * Sometimes save/update form may differ. That way formviewer allowes to stay on save form untill you quit.
     * @param recordData
     */
    private _setFakeEdit;
    /**
     * Fetching all the grid configuration.
     * @param clearData
     */
    private fetchGridData;
    private markAsDirty;
    /**
     * Subscribes for grid-to-grid hooks.
     */
    private onChange;
    ngOnDestroy(): void;
}
