import { Condition } from './Condition'; import { DataClassProperty } from './DataClassProperty'; import { Modification } from './Modification'; import { Comparable } from '@lightningkite/khrysalis-runtime'; export declare function startChain(): KeyPath; export declare class KeyPath { readonly mapCondition: ((a: Condition) => Condition); readonly mapModification: ((a: Modification) => Modification); constructor(mapCondition: ((a: Condition) => Condition), mapModification: ((a: Modification) => Modification)); get(prop: DataClassProperty): KeyPath; } 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 xKeyPathAll(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathAny(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Condition; export declare function xKeyPathSizesEquals(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 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 xKeyPathPlusItems(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathPlusItem(this_: KeyPath>, item: T): Modification; export declare function xKeyPathAddAll(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathAddUnique(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathRemoveAll(this_: KeyPath>, condition: ((a: KeyPath) => Condition)): Modification; export declare function xKeyPathRemoveList(this_: KeyPath>, items: Array): Modification; export declare function xKeyPathDropLast(this_: KeyPath>): Modification; export declare function xKeyPathDropFirst(this_: KeyPath>): Modification; export declare function xKeyPathMap(this_: KeyPath>, modification: ((a: KeyPath) => Modification)): Modification; export declare function xKeyPathMapIf(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;