import { Condition } from './Condition'; import { Modification } from './Modification'; import { ReifiedType, TProperty1 } from '@lightningkite/khrysalis-runtime'; export declare abstract class DataClassPathPartial { protected constructor(); abstract getAny(key: K): (any | null); abstract setAny(key: K, any: (any | null)): K; abstract readonly properties: Array>; abstract hashCode(): number; abstract toString(): string; abstract equals(other: (any | null)): boolean; } export declare abstract class DataClassPath extends DataClassPathPartial { protected constructor(); abstract get(key: K): (V | null); abstract set(key: K, value: V): K; getAny(key: K): (any | null); setAny(key: K, any: (any | null)): K; abstract mapCondition(condition: Condition): Condition; abstract mapModification(modification: Modification): Modification; prop(prop: TProperty1): DataClassPathAccess; } export declare class DataClassPathSelf extends DataClassPath { constructor(); get(key: K): (K | null); set(key: K, value: K): K; toString(): string; hashCode(): number; equals(other: (any | null)): boolean; get properties(): Array>; mapCondition(condition: Condition): Condition; mapModification(modification: Modification): Modification; } export declare class DataClassPathAccess extends DataClassPath { readonly first: DataClassPath; readonly second: TProperty1; constructor(first: DataClassPath, second: TProperty1); static properties: string[]; static propertyTypes(K: ReifiedType, M: ReifiedType, V: ReifiedType): { first: (ReifiedType | typeof DataClassPath)[]; second: (StringConstructor | ReifiedType)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; get(key: K): (V | null); set(key: K, value: V): K; toString(): string; get properties(): Array>; mapCondition(condition: Condition): Condition; mapModification(modification: Modification): Modification; } export declare class DataClassPathNotNull extends DataClassPath { readonly wraps: DataClassPath; constructor(wraps: DataClassPath); static properties: string[]; static propertyTypes(K: ReifiedType, V: ReifiedType): { wraps: (ReifiedType | typeof DataClassPath)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; get properties(): Array>; get(key: K): (V | null); set(key: K, value: V): K; toString(): string; mapCondition(condition: Condition): Condition; mapModification(modification: Modification): Modification; } export declare class DataClassPathList extends DataClassPath { readonly wraps: DataClassPath>; constructor(wraps: DataClassPath>); static properties: string[]; static propertyTypes(K: ReifiedType, V: ReifiedType): { wraps: (ReifiedType | typeof DataClassPath)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; get properties(): Array>; get(key: K): (V | null); set(key: K, value: V): K; toString(): string; mapCondition(condition: Condition): Condition; mapModification(modification: Modification): Modification; } export declare class DataClassPathSet extends DataClassPath { readonly wraps: DataClassPath>; constructor(wraps: DataClassPath>); static properties: string[]; static propertyTypes(K: ReifiedType, V: ReifiedType): { wraps: (ReifiedType | typeof DataClassPath)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; get properties(): Array>; get(key: K): (V | null); set(key: K, value: V): K; toString(): string; mapCondition(condition: Condition): Condition; mapModification(modification: Modification): Modification; } export declare function notNullGet(this_: DataClassPath): DataClassPathNotNull; export declare function listElementsGet(this_: DataClassPath>): DataClassPathList; export declare function setElementsGet(this_: DataClassPath>): DataClassPathSet;