import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { EditableRowContext } from '../models/editable-model';
import { SmzTableState } from '../models/table-state';
import { Table } from '../../prime/table/table';
import { SmzTransactionsService } from './smz-transactions.service';
import { TableFormsService } from './table-forms.service';
import { Store } from '@ngxs/store';
import { SmzTableContextColumn } from '../models/table-column';
import * as i0 from "@angular/core";
export declare class TableEditableService {
    private transactions;
    private formsService;
    private store;
    context: {
        [k: string]: EditableRowContext;
    };
    state: SmzTableState;
    createEvent: EventEmitter<any>;
    updateEvent: EventEmitter<any>;
    deleteEvent: EventEmitter<any>;
    cdr: ChangeDetectorRef;
    isEditing: boolean;
    isCreating: boolean;
    isDeleting: boolean;
    constructor(transactions: SmzTransactionsService, formsService: TableFormsService, store: Store);
    setupAccess(): void;
    onRowCreateInit(table: Table, columns: SmzTableContextColumn[]): void;
    onRowRemove(event: MouseEvent, table: Table, row: any): void;
    onRowEditInit(row: any, type?: 'create' | 'update' | 'delete'): void;
    checkForChanges(rowId: string): void;
    onRowEditSave(event: MouseEvent, table: Table, editableRowElement: any, row: any): void;
    onRowCreateSave(event: MouseEvent, table: Table, editableRowElement: any, row: any): void;
    onRowEditCancel(event: MouseEvent, table: Table, row: any): void;
    onRowCreateCancel(event: MouseEvent, table: Table, row: any): void;
    private getChanges;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableEditableService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TableEditableService>;
}
