import { Transaction, State } from './transaction'; import { IgxBaseTransactionService } from './base-transaction'; import { EventEmitter } from '@angular/core'; export declare class IgxTransactionService extends IgxBaseTransactionService { protected _transactions: T[]; protected _redoStack: { transaction: T; recordRef: any; }[][]; protected _undoStack: { transaction: T; recordRef: any; }[][]; protected _states: Map; /** * @inheritdoc */ readonly canUndo: boolean; /** * @inheritdoc */ readonly canRedo: boolean; /** * @inheritdoc */ onStateUpdate: EventEmitter; /** * @inheritdoc */ add(transaction: T, recordRef?: any): void; protected addTransaction(transaction: T, states: Map, recordRef?: any): void; /** * @inheritdoc */ getTransactionLog(id?: any): T[]; /** * @inheritdoc */ getAggregatedChanges(mergeChanges: boolean): T[]; /** * @inheritdoc */ getState(id: any, pending?: boolean): S; /** * @inheritdoc */ readonly enabled: boolean; /** * @inheritdoc */ getAggregatedValue(id: any, mergeChanges: boolean): any; /** * @inheritdoc */ endPending(commit: boolean): void; /** * @inheritdoc */ commit(data: any[], id?: any): void; /** * @inheritdoc */ clear(id?: any): void; /** * @inheritdoc */ undo(): void; /** * @inheritdoc */ redo(): void; /** * Verifies if the passed transaction is correct. If not throws an exception. * @param transaction Transaction to be verified */ protected verifyAddedTransaction(states: Map, transaction: T, recordRef?: any): void; /** * Updates the provided states collection according to passed transaction and recordRef * @param states States collection to apply the update to * @param transaction Transaction to apply to the current state * @param recordRef Reference to the value of the record in data source, if any, where transaction should be applied */ protected updateState(states: Map, transaction: T, recordRef?: any): void; /** * Compares the state with recordRef and clears all duplicated values. If any state ends as * empty object removes it from states. * @param state State to clean */ protected cleanState(id: any, states: Map): void; /** * Updates state related record in the provided data * @param data Data source to update * @param state State to update data from */ protected updateRecord(data: any[], state: S): void; }