import { Type } from "./type";
import { DataSourceAggregatedResult } from "./DataSourceAggregatedResult";
import { DataSourceDataCommittedEventArgs } from "./DataSourceDataCommittedEventArgs";
/**
 * @hidden
 */
export interface IEditableDataSource {
    isReadOnly: boolean;
    isBatchingEnabled: boolean;
    readonly canUndo: boolean;
    readonly canRedo: boolean;
    readonly canCommit: boolean;
    updatePropertyAtKey(a: any[], b: string, c: any, d: boolean): number;
    removeItemByKey(a: any[]): void;
    removeItem(a: any): void;
    addItem(a: any): void;
    acceptPendingTransaction(a: number): void;
    rejectPendingTransaction(a: number): void;
    commitEdits(a: boolean): number;
    cancelEdits(): void;
    acceptPendingCommit(a: number): void;
    rejectPendingCommit(a: number): void;
    undo(): void;
    redo(): void;
    hasEdit(a: any[], b: string): boolean;
    hasDelete(a: any[]): boolean;
    hasAdd(a: any): boolean;
    getAggregatedChanges(a: number): DataSourceAggregatedResult[];
    isPendingTransaction(a: number): boolean;
    isPendingCommit(a: number): boolean;
    setTransactionError(a: number, b: string): void;
    getTransactionErrorByKey(a: any[], b: string): string;
    getTransactionErrorByID(a: number): string;
    getTransactionID(a: any[], b: string): number;
    dataCommitted: (sender: any, e: DataSourceDataCommittedEventArgs) => void;
}
/**
 * @hidden
 */
export declare let IEditableDataSource_$type: Type;
