import { CoreEvent } from "./base"; import { ICloneable } from "../object"; export declare class Mutation { readonly type: string; readonly target: T; constructor(type: string, target?: T); toString(): string; protected paramsToString(): string; toEvent(bubbles?: boolean): any; } export declare class MutationEvent extends CoreEvent { readonly mutation: Mutation; static readonly MUTATION: string; constructor(mutation: Mutation, bubbles?: boolean); } export declare class SetValueMutation extends Mutation { newValue: any; constructor(type: string, target: T, newValue: any); paramsToString(): string; } export declare abstract class ChildMutation extends Mutation { readonly child: U; readonly index: number; constructor(type: string, target: T, child: U, index: number); paramsToString(): string; } export declare class InsertChildMutation extends ChildMutation { constructor(type: string, target: T, child: U, index?: number); paramsToString(): string; } export declare class RemoveChildMutation extends ChildMutation { constructor(type: string, target: T, child: U, index: number); } export declare class PropertyMutation extends Mutation { name: string; newValue: any; oldValue: any; oldName: string; index: number; static readonly PROPERTY_CHANGE: string; constructor(type: string, target: T, name: string, newValue: any, oldValue?: any, oldName?: string, index?: number); toEvent(bubbles?: boolean): any; paramsToString(): string; } /** * Removes the target synthetic object */ export declare class RemoveMutation extends Mutation { static readonly REMOVE_CHANGE: string; constructor(target?: T); } export declare class MoveChildMutation extends ChildMutation { readonly oldIndex: number; constructor(type: string, target: T, child: U, oldIndex: number, index: number); paramsToString(): string; }