import { DataClassProperty } from './DataClassProperty'; import { ReifiedType } from '@lightningkite/khrysalis-runtime'; export declare class Condition { protected constructor(); hashCode(): number; equals(other: (any | null)): boolean; invoke(on: T): boolean; and(other: Condition): Condition.And; or(other: Condition): Condition.Or; not(): Condition.Not; } export declare namespace Condition { class Never extends Condition { constructor(); invoke(on: T): boolean; hashCode(): number; equals(other: (any | null)): boolean; } } export declare namespace Condition { class Always extends Condition { constructor(); invoke(on: T): boolean; hashCode(): number; equals(other: (any | null)): boolean; } } export declare namespace Condition { class And extends Condition { readonly conditions: Array>; constructor(conditions: Array>); static properties: string[]; static propertyTypes(T: ReifiedType): { conditions: (ArrayConstructor | (ReifiedType | typeof Condition)[])[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class Or extends Condition { readonly conditions: Array>; constructor(conditions: Array>); static properties: string[]; static propertyTypes(T: ReifiedType): { conditions: (ArrayConstructor | (ReifiedType | typeof Condition)[])[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class Not extends Condition { readonly condition: Condition; constructor(condition: Condition); static properties: string[]; static propertyTypes(T: ReifiedType): { condition: (ReifiedType | typeof Condition)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class Equal extends Condition { readonly value: T; constructor(value: T); static properties: string[]; static propertyTypes(T: ReifiedType): { value: ReifiedType; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class NotEqual extends Condition { readonly value: T; constructor(value: T); static properties: string[]; static propertyTypes(T: ReifiedType): { value: ReifiedType; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class Inside extends Condition { readonly values: Array; constructor(values: Array); static properties: string[]; static propertyTypes(T: ReifiedType): { values: (ArrayConstructor | ReifiedType)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class NotInside extends Condition { readonly values: Array; constructor(values: Array); static properties: string[]; static propertyTypes(T: ReifiedType): { values: (ArrayConstructor | ReifiedType)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class GreaterThan extends Condition { readonly value: T; constructor(value: T); static properties: string[]; static propertyTypes(T: ReifiedType): { value: ReifiedType; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class LessThan extends Condition { readonly value: T; constructor(value: T); static properties: string[]; static propertyTypes(T: ReifiedType): { value: ReifiedType; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class GreaterThanOrEqual extends Condition { readonly value: T; constructor(value: T); static properties: string[]; static propertyTypes(T: ReifiedType): { value: ReifiedType; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class LessThanOrEqual extends Condition { readonly value: T; constructor(value: T); static properties: string[]; static propertyTypes(T: ReifiedType): { value: ReifiedType; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: T): boolean; } } export declare namespace Condition { class Search extends Condition { readonly value: string; readonly ignoreCase: boolean; constructor(value: string, ignoreCase: boolean); static properties: string[]; static propertyTypes(): { value: StringConstructor[]; ignoreCase: BooleanConstructor[]; }; copy: (values: Partial) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: string): boolean; } } export declare namespace Condition { class IntBitsClear extends Condition { readonly mask: number; constructor(mask: number); static properties: string[]; static propertyTypes(): { mask: NumberConstructor[]; }; copy: (values: Partial) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: number): boolean; } } export declare namespace Condition { class IntBitsSet extends Condition { readonly mask: number; constructor(mask: number); static properties: string[]; static propertyTypes(): { mask: NumberConstructor[]; }; copy: (values: Partial) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: number): boolean; } } export declare namespace Condition { class IntBitsAnyClear extends Condition { readonly mask: number; constructor(mask: number); static properties: string[]; static propertyTypes(): { mask: NumberConstructor[]; }; copy: (values: Partial) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: number): boolean; } } export declare namespace Condition { class IntBitsAnySet extends Condition { readonly mask: number; constructor(mask: number); static properties: string[]; static propertyTypes(): { mask: NumberConstructor[]; }; copy: (values: Partial) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: number): boolean; } } export declare namespace Condition { class AllElements extends Condition> { readonly condition: Condition; constructor(condition: Condition); static properties: string[]; static propertyTypes(E: ReifiedType): { condition: (ReifiedType | typeof Condition)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: Array): boolean; } } export declare namespace Condition { class AnyElements extends Condition> { readonly condition: Condition; constructor(condition: Condition); static properties: string[]; static propertyTypes(E: ReifiedType): { condition: (ReifiedType | typeof Condition)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: Array): boolean; } } export declare namespace Condition { class SizesEquals extends Condition> { readonly count: number; constructor(count: number); static properties: string[]; static propertyTypes(E: ReifiedType): { count: NumberConstructor[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: Array): boolean; } } export declare namespace Condition { class Exists extends Condition> { readonly key: string; constructor(key: string); static properties: string[]; static propertyTypes(V: ReifiedType): { key: StringConstructor[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: Map): boolean; } } export declare namespace Condition { class OnKey extends Condition> { readonly key: string; readonly condition: Condition; constructor(key: string, condition: Condition); static properties: string[]; static propertyTypes(V: ReifiedType): { key: StringConstructor[]; condition: (ReifiedType | typeof Condition)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: Map): boolean; } } export declare namespace Condition { class OnField extends Condition { readonly key: DataClassProperty; readonly condition: Condition; constructor(key: DataClassProperty, condition: Condition); static properties: string[]; static propertyTypes(K: ReifiedType, V: ReifiedType): { key: (StringConstructor | ReifiedType)[]; condition: (ReifiedType | typeof Condition)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: K): boolean; } } export declare namespace Condition { class IfNotNull extends Condition<(T | null)> { readonly condition: Condition; constructor(condition: Condition); static properties: string[]; static propertyTypes(T: ReifiedType): { condition: (ReifiedType | typeof Condition)[]; }; copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; invoke(on: (T | null)): boolean; } }