import { Condition } from './Condition'; import { Modification } from './Modification'; import { Comparable, TProperty1 } from '@lightningkite/khrysalis-runtime'; export declare function startChain(): KeyPath; export declare class KeyPath { readonly mapCondition: ((a: Condition) => Condition); readonly mapModification: ((a: Modification) => Modification); readonly getProp: ((a: From) => To); readonly setProp: ((a: From, b: To) => From); constructor(mapCondition: ((a: Condition) => Condition), mapModification: ((a: Modification) => Modification), getProp: ((a: From) => To), setProp: ((a: From, b: To) => From)); get(prop: TProperty1): KeyPath; toString(): string; } export declare function condition(setup: ((a: KeyPath) => Condition)): Condition; export declare function modification(setup: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathAlwaysGet(this_: KeyPath): Condition; export declare function xKeyPathNeverGet(this_: KeyPath): Condition; export declare function xKeyPathEq(this_: KeyPath, value: T): Condition; export declare function xKeyPathNeq(this_: KeyPath, value: T): Condition; export declare function xKeyPathNe(this_: KeyPath, value: T): Condition; export declare function xKeyPathInside(this_: KeyPath, values: Array): Condition; export declare function xKeyPathNin(this_: KeyPath, values: Array): Condition; export declare function xKeyPathNotIn(this_: KeyPath, values: Array): Condition; export declare function xKeyPathGt(this_: KeyPath, value: T): Condition; export declare function xKeyPathLt(this_: KeyPath, value: T): Condition; export declare function xKeyPathGte(this_: KeyPath, value: T): Condition; export declare function xKeyPathLte(this_: KeyPath, value: T): Condition; export declare function xKeyPathAllClear(this_: KeyPath, mask: number): Condition; export declare function xKeyPathAllSet(this_: KeyPath, mask: number): Condition; export declare function xKeyPathAnyClear(this_: KeyPath, mask: number): Condition; export declare function xKeyPathAnySet(this_: KeyPath, mask: number): Condition; export declare function xKeyPathContains(this_: KeyPath, value: string): Condition; export declare function xKeyPathContainsCased(this_: KeyPath, value: string, ignoreCase: boolean): Condition; export declare function xKeyPathFullTextSearch(this_: KeyPath, value: string, ignoreCase: boolean): Condition; export declare function xKeyPathListAll(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathListAny(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathListSizedEqual(this_: KeyPath>, count: number): Condition; export declare function xKeyPathSetAll(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathSetAny(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathSetSizedEqual(this_: KeyPath>, count: number): Condition; export declare function xKeyPathContainsKey(this_: KeyPath>, key: string): Condition; export declare function xKeyPathNotNullGet(this_: KeyPath): KeyPath; export declare function xKeyPathGet(this_: KeyPath>, key: string): KeyPath; export declare function xKeyPathListAllGet(this_: KeyPath>): KeyPath; export declare function xKeyPathSetAllGet(this_: KeyPath>): KeyPath; export declare function xKeyPathListAnyGet(this_: KeyPath>): KeyPath; export declare function xKeyPathSetAnyGet(this_: KeyPath>): KeyPath; export declare function xKeyPathCondition(this_: KeyPath, make: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathModification(this_: KeyPath, make: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathAssign(this_: KeyPath, value: T): Modification; export declare function xKeyPathCoerceAtMost>(this_: KeyPath, value: T): Modification; export declare function xKeyPathCoerceAtLeast>(this_: KeyPath, value: T): Modification; export declare function xKeyPathPlusNumber(this_: KeyPath, by: T): Modification; export declare function xKeyPathTimes(this_: KeyPath, by: T): Modification; export declare function xKeyPathPlusString(this_: KeyPath, value: string): Modification; export declare function xKeyPathPlusItemsList(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathPlusItemsSet(this_: KeyPath>, items: Set): Modification; export declare function xKeyPathPlusItemList(this_: KeyPath>, item: T): Modification; export declare function xKeyPathPlusItemSet(this_: KeyPath>, item: T): Modification; export declare function xKeyPathListAddAll(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathSetAddAll(this_: KeyPath>, items: Set): Modification; export declare function xKeyPathListRemove(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Modification; export declare function xKeyPathSetRemove(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Modification; export declare function xKeyPathListRemoveAll(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathSetRemoveAll(this_: KeyPath>, items: Set): Modification; export declare function xKeyPathListDropLast(this_: KeyPath>): Modification; export declare function xKeyPathSetDropLast(this_: KeyPath>): Modification; export declare function xKeyPathListDropFirst(this_: KeyPath>): Modification; export declare function xKeyPathSetDropFirst(this_: KeyPath>): Modification; export declare function xKeyPathListMap(this_: KeyPath>, modification: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathSetMap(this_: KeyPath>, modification: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathListMapIf(this_: KeyPath>, condition: ((a: KeyPath) => Condition), modification: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathSetMapIf(this_: KeyPath>, condition: ((a: KeyPath) => Condition), modification: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathPlusMap(this_: KeyPath>, map: Map): Modification; export declare function xKeyPathModifyByKey(this_: KeyPath>, map: Map) => Modification)>): Modification; export declare function xKeyPathRemoveKeys(this_: KeyPath>, fields: Set): Modification; export declare function xUnitThen(this_: void, ignored: void): void;