import { Condition } from './Condition'; import { DataClassPath } from './DataClassPath'; import { Modification } from './Modification'; import { Comparable } from '@lightningkite/khrysalis-runtime'; export declare function modification(setup: ((a: ModificationBuilder, b: DataClassPath) => void)): Modification; export declare function xModificationAnd(this_: Modification, setup: ((a: ModificationBuilder, b: DataClassPath) => void)): Modification; export declare class ModificationBuilder { constructor(); readonly modifications: Array>; add(modification: Modification): void; build(): Modification; assign(this_: DataClassPath, value: T): void; coerceAtMost>(this_: DataClassPath, value: T): void; coerceAtLeast>(this_: DataClassPath, value: T): void; plusAssignNumber(this_: DataClassPath, by: T): void; timesAssign(this_: DataClassPath, by: T): void; plusAssignString(this_: DataClassPath, value: string): void; plusAssignList(this_: DataClassPath>, items: Array): void; plusAssignSet(this_: DataClassPath>, items: Set): void; plusAssignItemList(this_: DataClassPath>, item: T): void; plusAssignItemSet(this_: DataClassPath>, item: T): void; plusAssignListAddAll(this_: DataClassPath>, items: Array): void; plusAssignSetAddAll(this_: DataClassPath>, items: Set): void; removeAllList(this_: DataClassPath>, condition: ((a: DataClassPath) => Condition)): void; removeAllSet(this_: DataClassPath>, condition: ((a: DataClassPath) => Condition)): void; removeAllItemsList(this_: DataClassPath>, items: Array): void; removeAllItemsSet(this_: DataClassPath>, items: Set): void; dropLastList(this_: DataClassPath>): void; dropLastSet(this_: DataClassPath>): void; dropFirstList(this_: DataClassPath>): void; dropFirstSet(this_: DataClassPath>): void; forEachList(this_: DataClassPath>, modification: ((a: ModificationBuilder, b: DataClassPath) => void)): void; forEachSet(this_: DataClassPath>, modification: ((a: ModificationBuilder, b: DataClassPath) => void)): void; forEachIfList(this_: DataClassPath>, condition: ((a: DataClassPath) => Condition), modification: ((a: ModificationBuilder, b: DataClassPath) => void)): void; forEachIfSet(this_: DataClassPath>, condition: ((a: DataClassPath) => Condition), modification: ((a: ModificationBuilder, b: DataClassPath) => void)): void; plusAssignMap(this_: DataClassPath>, map: Map): void; modifyByKey(this_: DataClassPath>, byKey: Map, b: DataClassPath) => void)>): void; removeKeys(this_: DataClassPath>, fields: Set): void; }