/// import { AsyncLocalStorage } from 'async_hooks'; import { Atom } from 'data0'; import cors from 'cors'; import { FastifyLoggerOptions } from 'fastify'; import { MatchExpressionData } from '@interaqt/storage'; import SQLite from 'better-sqlite3'; import { UnwrapReactive } from 'data0'; export declare const Action: Klass<{ name: { type: "string"; required: true; }; }>; export declare const Activity: Klass; export declare const ACTIVITY_RECORD = "_Activity_"; declare class ActivityCall { activity: ActivityInstanceType; controller: Controller; static cache: Map; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; transfers: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; groups: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; gateways: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; events: { type: Klass< { name: { type: "string"; required: true; }; }>; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance< { name: { type: "string"; required: true; }; }> | ReactiveKlassInstance< { name: { type: "string"; required: true; }; }>)[]; }; }>, ActivityCall>; static from: (activity: ActivityInstanceType, controller: Controller) => ActivityCall; graph: Seq; uuidToNode: Map; uuidToInteractionCall: Map; interactionCallByName: Map; rawToNode: Map | InertKlassInstance | InertKlassInstance, GraphNode>; system: System; constructor(activity: ActivityInstanceType, controller: Controller); buildGraph(activity: ActivityInstanceType, parentGroup?: ActivityGroupNode): Seq; create(): Promise<{ activityId: any; state: ActivitySeqStateData; }>; getNodeByUUID(uuid: string): GraphNode | undefined; getState(activityId: string): Promise; getActivity(activityId: string): Promise; setActivity(activityId: string, value: any): Promise; setState(activityId: string, state: any): Promise; isStartNode(uuid: string): boolean; isEndNode(uuid: string): boolean; isActivityHead(interaction: InteractionInstanceType, head?: InteractionLikeNodeBase): boolean; callInteraction(inputActivityId: string | undefined, uuid: string, interactionEventArgs: InteractionEventArgs): Promise; saveUserRefs(activityId: string, interactionCall: InteractionCall, interactionEventArgs: InteractionEventArgs): Promise; checkUserRef: (attributive: KlassInstance, eventUser: EventUser, activityId: string) => Promise; } export declare const activityEntity: InertKlassInstance< { name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass< { name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }>; export declare const ActivityGroup: Klass; export declare type ActivityGroupInstanceType = KlassInstance, false>; declare type ActivityGroupNode = { content: ActivityGroupInstanceType; parentGroup?: ActivityGroupNode; childSeqs?: Seq[]; } & InteractionLikeNodeBase; export declare type ActivityGroupPublicType = { type: { type: 'string'; required: true; collection: false; }; activities: { instanceType: UnwrappedActivityInstanceType; required: false; collection: true; defaultValue: (...args: any[]) => UnwrappedActivityInstanceType[]; }; }; export declare type ActivityInstanceType = KlassInstance; declare type ActivityPublicType = { name: { type: 'string'; collection: false; required: true; }; interactions: { type: Klass; collection: true; defaultValue: (...args: any[]) => KlassInstance, any>[]; }; transfers: { type: Klass; collection: true; defaultValue: (...args: any[]) => KlassInstance, any>[]; }; groups: { type: Klass; collection: true; defaultValue: (...args: any[]) => KlassInstance, any>[]; }; gateways: { type: Klass; collection: true; defaultValue: (...args: any[]) => KlassInstance, any>[]; }; events: { type: typeof Event_2; collection: true; defaultValue: (...args: any[]) => KlassInstance[]; }; }; declare type ActivitySeqStateData = { current?: InteractionStateData; }; export declare const Any: Klass<{ record: { type: (Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }> | Klass)[]; collection: false; required: true; }; match: { type: "function"; collection: false; required: true; }; }>; export declare type APIBody = { activity?: string; interaction?: string; activityId?: string; payload?: EventPayload; query?: EventQuery; }; export declare const asyncInteractionContext: AsyncLocalStorage; declare type AtomData = { type: 'atom'; data: T; }; declare type AtomError = { name: string; type: string; stack?: ConceptCheckStack[]; content?: string; error?: any; }; export declare type AtomHandle = (arg: T) => boolean | Promise; export declare const Attributive: Klass< { stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }>; export declare const Attributives: Klass< { content: { type: (Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>; export declare const BoolAtomData: Klass<{ type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance | InertKlassInstance; required: true; collection: false; }; }>; export declare class BoolExp { raw: ExpressionData; static atom(data: U): BoolExp; constructor(raw: ExpressionData); isAtom(): boolean; get left(): BoolExp; get right(): BoolExp | undefined; get data(): T; toValue(): AtomData; static fromValue(value: ExpressionData): BoolExp; isExpression(): boolean; and(atomValueOrExp: any): BoolExp; isAnd(): boolean; isOr(): boolean; isNot(): boolean; or(atomValueOrExp: any): BoolExp; not(): BoolExp; map(fn: MapFn, context?: string[]): BoolExp; evaluate(atomHandle: AtomHandle, stack?: any[], inverse?: boolean): true | EvaluateError; evaluateAsync(atomHandle: AtomHandle, stack?: any[], inverse?: boolean): Promise; } export declare const BoolExpressionData: Klass<{ type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance | InertKlassInstance; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance | InertKlassInstance; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>; export declare type BoolExpressionRawData = { type: 'expression'; operator: 'and' | 'not' | 'or'; left: ExpressionData; right?: ExpressionData; }; export declare function boolExpToAttributives(obj: BoolExp>): InertKlassInstance< { content: { type: (Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>; export declare function boolExpToConditions(obj: BoolExp>): InertKlassInstance< { content: { type: (Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>; export declare function boolExpToDataAttributives(obj: BoolExp>): InertKlassInstance< { content: { type: (Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>; declare type CheckUserRef = (attributive: KlassInstance, eventUser: EventUser, activityId: string) => Promise; declare type ClassMetaPublicItem = OptionalComputedValueType>>>; declare type ClassPropType = { type?: Klass | Klass[] | PrimitivePropType; instanceType?: Object; reactiveInstanceType?: KlassInstance; computedType?: (...arg: any[]) => string | Function; options?: any[] | ((thisProp: any, thisEntity: object) => any[]); constraints?: { [ruleName: string]: ((thisProp: any, thisEntity: object) => Atom | boolean | any[]) | Function | string; }; }; declare type CommonAtomPublic = { content: { type: 'function'; required: true; collection: false; }; }; export declare const Computation: Klass< { content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; }>; export declare const ComputedData: Klass<{ computeEffect: { type: "string"; collection: false; required: true; }; computation: { type: "string"; collection: false; required: true; }; }>; declare class ComputedDataHandle { controller: Controller; computedData: KlassInstance; dataContext: DataContext; static Handles: Map, typeof ComputedDataHandle>; computedDataType: 'global' | 'entity' | 'relation' | 'property'; userComputeEffect: (mutationEvent: any, mutationEvents: any) => Promise | ComputeEffectResult; userFullCompute: (...args: any[]) => Promise; recordName?: string; propertyName?: string; stateName?: string; constructor(controller: Controller, computedData: KlassInstance, dataContext: DataContext); setupSchema(): void; setupStates(): Promise; setupInitialValue(): Promise; addEventListener(): void; parseComputeEffectFunction(content: string): Function; parseFullComputeFunction(content: string): Function; parseComputedData(): void; getDefaultValue(newRecordId?: any): any; insertDefaultPropertyValue(newRecord: any): Promise; computeEffect(mutationEvent: RecordMutationEvent, mutationEvents: RecordMutationEvent[]): any; recompute(effectResult: ComputeEffectResult, mutationEvent: RecordMutationEvent, mutationEvents: RecordMutationEvent[]): Promise; updateState(affectedId: true | string, newValue: any): Promise; } declare type ComputedEffect = any; declare type ComputedValueType = (obj: KlassInstance) => any; declare type ComputeEffectResult = ComputedEffect | ComputedEffect[] | undefined; export declare interface Concept { name: string; } export declare interface ConceptAlias extends Concept { for: Concept[]; } declare type ConceptCheckResponse = AtomError | true; declare type ConceptCheckStack = { type: string; values: { [k: string]: any; }; }; export declare type ConceptInstance = any; export declare type ConceptType = {}; export declare const Condition: Klass< { content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; }>; export declare const Conditions: Klass< { content: { type: (Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>; export declare const constraints: { entityNameUnique({ entities }: { entities: (typeof Entity)[]; }): Atom; }; export declare class Controller { system: System; entities: KlassInstance[]; relations: KlassInstance[]; activities: KlassInstance[]; interactions: KlassInstance[]; states: KlassInstance[]; computedDataHandles: Set; activityCalls: Map; activityCallsByName: Map; interactionCallsByName: Map; interactionCalls: Map; globals: { BoolExp: typeof BoolExp; }; constructor(system: System, entities: KlassInstance[], relations: KlassInstance[], activities: KlassInstance[], interactions: KlassInstance[], states?: KlassInstance[]); addComputedDataHandle(computedData: KlassInstance, host: DataContext["host"], id: DataContext["id"]): void; setup(install?: boolean): Promise; callbacks: Map>; listen(event: any, callback: SystemCallback): () => void; dispatch(event: any, ...args: any[]): Promise; callInteraction(interactionId: string, interactionEventArgs: InteractionEventArgs): Promise; callActivityInteraction(activityCallId: string, interactionCallId: string, activityId: string | undefined, interactionEventArgs: InteractionEventArgs): Promise; } export declare const Count: Klass<{ record: { type: (Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }> | Klass)[]; collection: false; required: true; }; match: { type: "function"; collection: false; required: true; }; }>; export declare function createClass(metadata: T): Klass; export declare function createDataAPI(handle: DataAPIHandle, config?: DataAPIConfig): DataAPI; export declare function createInstances(objects: KlassRawInstanceDataType[], reactiveForce?: boolean): Map | ReactiveKlassInstance>; export declare function createInstancesFromString(objStr: string): Map | ReactiveKlassInstance>; export declare function createUserRoleAttributive({ name, isRef }: { name?: string; isRef?: boolean; }, options?: KlassOptions | ReactiveKlassOptions): InertKlassInstance< { stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }> | ReactiveKlassInstance< { stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }>; export declare type DataAPI = DataAPIHandle & DataAPIConfig; export declare type DataAPIConfig = { params?: any[]; allowAnonymous?: boolean; }; export declare type DataAPIContext = { user: EventUser; }; export declare type DataAPIHandle = (this: Controller, context: DataAPIContext, ...rest: any[]) => any; export declare type DataAPIs = { [k: string]: DataAPI; }; export declare const DataAttributive: Klass< { content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; }>; export declare const DataAttributives: Klass< { content: { type: (Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>; export declare type Database = { open: () => Promise; logger: DatabaseLogger; scheme: (sql: string, name?: string) => Promise; query: (sql: string, values: any[], name?: string) => Promise; delete: (sql: string, where: any[], name?: string) => Promise; insert: (sql: string, values: any[], name?: string) => Promise; update: (sql: string, values: any[], idField?: string, name?: string) => Promise; getAutoId: (recordName: string) => Promise; parseMatchExpression?: (key: string, value: [string, any], fieldName: string, fieldType: string, isReferenceValue: boolean, getReferenceFieldValue: (v: string) => string) => any; }; export declare type DatabaseLogger = { info: (arg: { type: string; name: string; sql: string; params?: any[]; }) => any; child: (fixed: object) => DatabaseLogger; }; declare type DataContext = { host?: KlassInstance | KlassInstance; id: KlassInstance | KlassInstance | KlassInstance | string; }; export declare function deepClone(obj: T, deepCloneKlass?: boolean): T; declare type DefaultValueType = (...args: any[]) => any; export declare interface DerivedConcept extends Concept { base?: Concept; attributive?: any; } export declare const Entity: Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }>; export declare type EntityIdRef = { id: string; [ROW_ID_ATTR]?: string; [k: string]: any; }; export declare type EvaluateError = { data: any; stack: any[]; error: any; inverse: boolean; }; declare const Event_2: Klass<{ name: { type: "string"; required: true; }; }>; export { Event_2 as Event } export declare const EVENT_RECORD = "_Event_"; export declare const eventEntity: InertKlassInstance< { name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass< { name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }>; export declare type EventPayload = { [k: string]: any; }; /** * 与 interaction 无关,但与当前 query 有关的信息。例如数据获取的 viewPort,innerInteraction 的 activity id */ export declare type EventQuery = { [k: string]: any; }; export declare type EventUser = { [k: string]: any; id: string; roles: string[]; }; export declare const Every: Klass<{ record: { type: (Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }> | Klass)[]; collection: false; required: true; }; match: { type: "function"; collection: false; required: true; }; notEmpty: { type: "boolean"; collection: false; required: false; }; }>; export declare type ExpressionData = BoolExpressionRawData | AtomData; declare type ExtractKlassTypes[]> = T extends Array ? SUB_KLASS extends Klass ? KlassProp> : never : never; export declare function findRootActivity(interaction: InteractionInstanceType): ActivityInstanceType | null; export declare function forEachInteraction(activity: ActivityInstanceType, handle: (i: InteractionInstanceType, g?: ActivityGroupInstanceType) => any, parenGroup?: ActivityGroupInstanceType): void; export declare const Gateway: Klass; export declare type GatewayInstanceType = KlassInstance; declare type GatewayNode = { uuid: string; content: GatewayInstanceType; prev: GraphNode[]; next: GraphNode[]; }; export declare type GatewayPublicType = { name: { type: 'string'; required: true; }; }; export declare const GetAction: InertKlassInstance< { name: { type: "string"; required: true; }; }> | ReactiveKlassInstance< { name: { type: "string"; required: true; }; }>; export declare function getDisplayValue(obj: InertKlassInstance): string | undefined; export declare function getInstance>(Type: T): KlassInstance[]; export declare function getInteractions(activity: ActivityInstanceType): InertKlassInstance[]; export declare function getUUID(obj: InertKlassInstance): string; declare type GraphNode = InteractionNode | ActivityGroupNode | GatewayNode; declare type HandleAttributive = (attributive: KlassInstance) => Promise; export declare const ID_ATTR = "id"; declare class IDSystem { db: Database; constructor(db: Database); setup(): Promise; getAutoId(recordName: string): Promise; } declare type IfReactiveCollectionProp = REACTIVE extends true ? (COLLECTION extends true ? UnwrapReactive : Atom) : (COLLECTION extends true ? T[] : T); export declare type InertKlassInstance> = InertKlassInstanceProps & KlassInstancePrimitiveProps; export declare type InertKlassInstanceProps> = OptionalProps & RequiredProps; export declare const Interaction: Klass; declare class InteractionCall { interaction: InteractionInstanceType; controller: Controller; activitySeqCall?: ActivityCall | undefined; system: System; constructor(interaction: InteractionInstanceType, controller: Controller, activitySeqCall?: ActivityCall | undefined); checkAttributive(inputAttributive: any, interactionEvent: InteractionEventArgs | undefined, attributiveTarget: any): Promise; checkMixedAttributive(attributiveData: KlassInstance, instance: ConceptInstance): Promise; createHandleAttributive(AttributiveClass: typeof Attributive | typeof Attributive, interactionEvent: InteractionEventArgs, target: any): (attributive: KlassInstance) => Promise; checkUser(interactionEvent: InteractionEventArgs, activityId?: string, checkUserRef?: CheckUserRef): Promise; checkConcept(instance: ConceptInstance, concept: Concept, attributives?: BoolExpressionRawData>, stack?: ConceptCheckStack[]): Promise; isConcept(instance: ConceptInstance, concept: Concept, stack?: ConceptCheckStack[]): Promise; isDerivedConcept(concept: Concept): boolean; isConceptAlias(concept: Concept): boolean; checkAttributives(attributives: BoolExp>, handleAttributive: HandleAttributive, stack?: ConceptCheckStack[]): Promise; checkPayload(interactionEvent: InteractionEventArgs): Promise; checkCondition(interactionEvent: InteractionEventArgs): Promise; runEffects(eventArgs: InteractionEventArgs, activityId: string | undefined, response: InteractionCallResponse): Promise; isGetInteraction(): boolean; saveEvent(interactionEvent: InteractionEvent): Promise; savePayload(payload: InteractionEventArgs["payload"]): Promise; retrieveData(interactionEvent: InteractionEventArgs): Promise; check(interactionEventArgs: InteractionEventArgs, activityId?: string, checkUserRef?: CheckUserRef, context?: InteractionContext): Promise; call(interactionEventArgs: InteractionEventArgs, activityId?: string, checkUserRef?: CheckUserRef, context?: InteractionContext): Promise; } declare type InteractionCallResponse = { error?: any; data?: any; event?: InteractionEvent; effects?: any[]; sideEffects?: { [k: string]: SideEffectResult; }; context?: { [k: string]: any; }; }; export declare type InteractionContext = { logContext?: any; [k: string]: any; }; export declare type InteractionEvent = { interactionId: string; interactionName: string; activityId?: string; args: InteractionEventArgs; }; export declare type InteractionEventArgs = { user: EventUser; payload?: EventPayload; query?: EventQuery; }; export declare type InteractionInstanceType = KlassInstance; declare type InteractionLikeNodeBase = { uuid: string; next: GraphNode | null; prev?: GraphNode; parentSeq: Seq; }; declare type InteractionNode = { content: InteractionInstanceType; parentGroup?: ActivityGroupNode; } & InteractionLikeNodeBase; export declare type InteractionPublicType = { name: { type: 'string'; collection: false; required: true; }; conditions: { required: false; collection: false; type: (typeof Conditions | typeof Condition)[]; }; userAttributives: { required: false; collection: false; type: (typeof Attributives | typeof Attributive)[]; }; userRef: { type: typeof Attributive; collection: false; }; action: { type: typeof Action; collection: false; required: true; }; payload: { type: typeof Payload; collection: false; }; sideEffects: { type: typeof SideEffect; collection: true; defaultValue: (...args: any[]) => KlassInstance[]; }; dataAttributives: { required: false; collection: false; type: (typeof DataAttributive | typeof DataAttributives)[]; }; data: { type: (typeof Entity | typeof Relation | typeof Computation)[]; required: false; collection: false; }; query: { type: typeof Query; collection: false; }; }; declare type InteractionStateData = { uuid: string; children?: ActivitySeqStateData[]; }; export declare type Klass> = { new (arg: object, options?: U): U extends ReactiveKlassOptions ? ReactiveKlassInstance : InertKlassInstance; create: (arg: KlassInstanceArgs, options?: KlassOptions) => InertKlassInstance; createReactive: (arg: KlassInstanceArgs, options?: KlassOptions) => ReactiveKlassInstance; displayName: string; isKlass: true; public: T; constraints: KlassMeta['constraints']; instances: KlassInstance, any>[]; display?: KlassMeta['display']; stringify: (instance: InertKlassInstance | ReactiveKlassInstance) => string; parse: () => InertKlassInstance; check: (data: object) => boolean; is: (arg: any) => boolean; clone: (obj: V, deep: boolean) => V; }; export declare const KlassByName: Map>; export declare type KlassInstance, U extends boolean> = U extends true ? ReactiveKlassInstance : InertKlassInstance; export declare type KlassInstanceArgs> = OptionalProps & RequiredProps; export declare type KlassInstancePrimitiveProps = { uuid: string; _options: KlassOptions; _type: string; }; export declare type KlassMeta = { name: string; display?: (obj: any) => string; constraints?: { [ruleName: string]: (thisInstance: object, allInstance: object[]) => Atom | boolean; }; public: { [key: string]: ClassMetaPublicItem; }; is?: (obj: any) => boolean; }; export declare type KlassOptions = { isReactive?: false; uuid?: string; }; export declare type KlassProp = IfReactiveCollectionProp; declare type KlassRawInstanceDataType = { type: string; uuid: string; options?: KlassOptions | ReactiveKlassOptions; public: KlassInstanceArgs; }; export declare const MapActivity: Klass<{ items: { type: Klass<{ activity: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; interactions: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; transfers: { type: Klass; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance | InertKlassInstance)[]; }; groups: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; gateways: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; events: { type: Klass<{ name: { type: "string"; required: true; }; }>; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance< { name: { type: "string"; required: true; }; }> | InertKlassInstance< { name: { type: "string"; required: true; }; }>)[]; }; }>; collection: false; required: true; }; triggerInteractions: { type: Klass; collection: true; required: false; }; map: { type: "function"; collection: false; required: true; }; computeTarget: { type: "function"; collection: false; required: false; }; }>; collection: true; required: true; }; defaultValue: { type: "string"; collection: false; required: false; }; }>; export declare const MapActivityItem: Klass<{ activity: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; interactions: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; transfers: { type: Klass; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance | InertKlassInstance)[]; }; groups: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; gateways: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; events: { type: Klass<{ name: { type: "string"; required: true; }; }>; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance< { name: { type: "string"; required: true; }; }> | InertKlassInstance< { name: { type: "string"; required: true; }; }>)[]; }; }>; collection: false; required: true; }; triggerInteractions: { type: Klass; collection: true; required: false; }; map: { type: "function"; collection: false; required: true; }; computeTarget: { type: "function"; collection: false; required: false; }; }>; declare type MapFn = (object: BoolExp, context: string[]) => U | BoolExp; export declare const MapInteraction: Klass<{ items: { type: Klass<{ interaction: { type: Klass; collection: false; required: true; }; map: { type: "function"; collection: false; required: true; }; computeTarget: { type: "function"; collection: false; required: false; }; }>; collection: true; required: true; }; defaultValue: { type: "string"; collection: false; required: false; }; }>; export declare const MapInteractionItem: Klass<{ interaction: { type: Klass; collection: false; required: true; }; map: { type: "function"; collection: false; required: true; }; computeTarget: { type: "function"; collection: false; required: false; }; }>; export declare const MapRecordMutation: Klass<{ map: { type: "function"; collection: false; required: true; }; computeTarget: { type: "function"; collection: false; required: false; }; }>; export declare class MonoSystem implements System { logger: SystemLogger; conceptClass: Map>; storage: Storage_2; constructor(db?: Database, logger?: SystemLogger); saveEvent(event: InteractionEvent): Promise; getEvent(query?: MatchExpressionData): Promise; createActivity(activity: any): Promise; updateActivity(match: MatchExpressionData, activity: any): Promise; getActivity(query?: MatchExpressionData): Promise; setup(entities: KlassInstance[], relations: KlassInstance[], install?: boolean): any; } declare type OmitNever = Omit; declare type OptionalCollectionType = T & { collection?: false; } | T & { collection: true; }; declare type OptionalComputedValueType = T & { computed?: undefined; } | T & { computed: ComputedValueType; }; declare type OptionalDefaultValueType = T & { defaultValue?: undefined; } | T & { defaultValue: DefaultValueType; }; export declare type OptionalProps, REACTIVE extends true | false, IS_ARG extends true | false> = Partial extends true ? never : (T[Key]["instanceType"] extends Object ? KlassProp : (T[Key]['type'] extends Klass ? KlassProp> : T[Key]['type'] extends Klass[] ? ExtractKlassTypes : T[Key]['type'] extends PrimitivePropType ? KlassProp : never)); }>>; declare type OptionalRequiredType = T & { required?: false; } | T & { required: true; }; export declare function parse(exp: string, options?: any[], parseAtomNameToObject?: ParseAtomNameToObjectType): BoolExp; declare type ParseAtomNameToObjectType = (name: string) => any; export declare const Payload: Klass<{ items: { type: Klass<{ name: { type: "string"; required: true; }; attributives: { type: (Klass<{ stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }> | Klass<{ content: { type: (Klass<{ type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass<{ type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>)[]; collection: false; }; base: { type: Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }>; required: true; collection: false; }; isRef: { type: "boolean"; collection: false; defaultValue: () => boolean; }; required: { type: "boolean"; collection: false; defaultValue: () => boolean; }; isCollection: { type: "boolean"; collection: false; defaultValue: () => boolean; }; itemRef: { collection: false; required: false; type: (Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }> | Klass<{ stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }>)[]; }; }>; collection: true; required: true; defaultValue: () => never[]; }; }>; export declare const PayloadItem: Klass<{ name: { type: "string"; required: true; }; attributives: { type: (Klass<{ stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }> | Klass<{ content: { type: (Klass<{ type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | Klass<{ type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; operator: { type: "string"; required: true; collection: false; options: string[]; defaultValue: () => string; }; left: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: true; collection: false; }; right: { instanceType: InertKlassInstance< { type: { type: "string"; required: true; collection: false; defaultValue: () => string; }; data: { instanceType: ReactiveKlassInstance< { content: { type: "function"; required: true; collection: false; }; }> | InertKlassInstance< { content: { type: "function"; required: true; collection: false; }; }>; required: true; collection: false; }; }> | UnwrappedBoolExpressionInstanceType; required: false; collection: false; }; }>)[]; collection: false; required: false; }; }>)[]; collection: false; }; base: { type: Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }>; required: true; collection: false; }; isRef: { type: "boolean"; collection: false; defaultValue: () => boolean; }; required: { type: "boolean"; collection: false; defaultValue: () => boolean; }; isCollection: { type: "boolean"; collection: false; defaultValue: () => boolean; }; itemRef: { collection: false; required: false; type: (Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }> | Klass<{ stringContent: { type: "string"; }; content: { type: "function"; required: true; collection: false; }; name: { type: "string"; }; isRef: { type: "boolean"; }; }>)[]; }; }>; declare interface PrimitivePropertyMap { string: string; number: number; boolean: boolean; object: object; function: (...arg: any[]) => any; } declare type PrimitivePropType = 'string' | 'number' | 'boolean' | 'object' | 'function'; export declare const Property: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; export declare const PropertyTypeMap: { string: string; number: string; boolean: string; }; export declare enum PropertyTypes { String = "string", Number = "number", Boolean = "boolean" } export declare const Query: Klass< { items: { type: Klass< { name: { type: "string"; required: true; collection: false; }; value: { type: "string"; required: true; collection: false; }; }>[]; required: true; collection: true; }; }>; export declare const QueryItem: Klass< { name: { type: "string"; required: true; collection: false; }; value: { type: "string"; required: true; collection: false; }; }>; export declare type ReactiveKlassInstance> = ReactiveKlassInstanceProps & KlassInstancePrimitiveProps; export declare type ReactiveKlassInstanceProps> = OptionalProps & RequiredProps; export declare type ReactiveKlassOptions = Omit & { isReactive: true; }; export declare type RecordChangeListener = (mutationEvents: RecordMutationEvent[]) => any; export declare type RecordMutationEvent = { recordName: string; type: 'create' | 'update' | 'delete'; keys?: string[]; record?: { [key: string]: any; }; oldRecord?: { [key: string]: any; }; }; export declare const Relation: Klass; export declare const RelationBasedAny: Klass<{ relation: { type: Klass; collection: false; required: true; }; relationDirection: { type: "string"; collection: false; required: true; defaultValue: () => string; }; match: { type: "function"; collection: false; required: true; }; }>; export declare const RelationBasedEvery: Klass<{ relation: { type: Klass; collection: false; required: true; }; relationDirection: { type: "string"; collection: false; required: true; defaultValue: () => string; }; match: { type: "function"; collection: false; required: true; }; notEmpty: { type: "boolean"; collection: false; required: false; }; }>; export declare const RelationBasedWeightedSummation: Klass<{ relations: { type: Klass<{ relation: { type: Klass; collection: false; required: true; }; relationDirection: { type: "string"; collection: false; required: true; defaultValue: () => string; }; }>; collection: true; required: true; }; matchRelationToWeight: { type: "function"; collection: false; required: true; }; }>; export declare const RelationCount: Klass<{ relation: { type: Klass; collection: false; required: true; }; relationDirection: { type: "string"; collection: false; required: true; defaultValue: () => string; }; match: { type: "function"; collection: false; required: true; }; }>; export declare type RelationPublic = { name: { type: 'string'; required: false; collection: false; computed: (relation: any) => any; }; source: { type: typeof Entity | Klass; required: true; collection: false; options: () => (KlassInstance | KlassInstance, any>)[]; }; sourceProperty: { type: 'string'; required: true; collection: false; constraints: { [ruleName: string]: ((thisProp: any, thisEntity: object) => Atom | boolean | any[]) | Function | string; }; }; target: { type: typeof Entity; required: true; collection: false; options: () => (KlassInstance | KlassInstance, any>)[]; }; targetProperty: { type: 'string'; required: true; collection: false; constraints: { [ruleName: string]: ((thisProp: any, thisEntity: object) => Atom | boolean | any[]) | Function | string; }; }; isTargetReliance: { type: 'boolean'; required: true; collection: false; defaultValue: () => boolean; }; relType: { type: 'string'; collection: false; required: true; options: () => string[]; defaultValue: () => [string]; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: typeof Property; collection: true; required: true; constraints: { [ruleName: string]: ((thisProp: any, thisEntity: object) => Atom | boolean | any[]) | Function | string; }; defaultValue: () => any[]; }; }; export declare const RelationStateMachine: Klass<{ states: { type: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; collection: true; required: true; }; transfers: { type: Klass<{ sourceActivity: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; interactions: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; transfers: { type: Klass; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance | InertKlassInstance)[]; }; groups: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; gateways: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; events: { type: Klass<{ name: { type: "string"; required: true; }; }>; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance< { name: { type: "string"; required: true; }; }> | InertKlassInstance< { name: { type: "string"; required: true; }; }>)[]; }; }>; collection: false; required: false; }; triggerInteraction: { type: Klass; collection: false; required: true; }; fromState: { type: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; collection: false; required: true; }; toState: { type: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; collection: false; required: true; }; handleType: { type: "string"; }; handle: { type: "function"; collection: false; required: true; }; }>; collection: true; required: true; }; defaultState: { type: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; collection: false; required: true; }; }>; export declare const RelationStateNode: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; export declare const RelationStateTransfer: Klass<{ sourceActivity: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; interactions: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; transfers: { type: Klass; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance | InertKlassInstance)[]; }; groups: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; gateways: { type: Klass; collection: true; defaultValue: (...args: any[]) => (InertKlassInstance | ReactiveKlassInstance)[]; }; events: { type: Klass<{ name: { type: "string"; required: true; }; }>; collection: true; defaultValue: (...args: any[]) => (ReactiveKlassInstance< { name: { type: "string"; required: true; }; }> | InertKlassInstance< { name: { type: "string"; required: true; }; }>)[]; }; }>; collection: false; required: false; }; triggerInteraction: { type: Klass; collection: false; required: true; }; fromState: { type: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; collection: false; required: true; }; toState: { type: Klass<{ hasRelation: { type: "boolean"; required: true; collection: false; }; fixedProperties: { type: Klass<{ name: { type: "string"; collection: false; required: true; }; value: { type: Klass[]; collection: false; required: true; }; }>; collection: true; required: false; }; propertyHandle: { type: "function"; required: false; collection: false; }; }>; collection: false; required: true; }; handleType: { type: "string"; }; handle: { type: "function"; collection: false; required: true; }; }>; export declare function removeAllInstance(): void; export declare type RequiredProps, REACTIVE extends true | false, IS_ARG extends true | false> = OmitNever<{ [Key in keyof T]: RequireWithoutDefaultAndComputed extends true ? (T[Key]["instanceType"] extends Object ? KlassProp : (T[Key]['type'] extends Klass ? KlassProp> : T[Key]['type'] extends Klass[] ? ExtractKlassTypes : T[Key]['type'] extends PrimitivePropType ? KlassProp : never)) : never; }>; export declare type RequireWithoutDefaultAndComputed = IS_ARG extends true ? (T["defaultValue"] extends DefaultValueType ? false : T["computed"] extends ComputedValueType ? false : T["required"] extends true ? true : false) : (T["defaultValue"] extends DefaultValueType ? true : T["computed"] extends ComputedValueType ? true : T["required"] extends true ? true : false); export declare const ROW_ID_ATTR = "_rowId"; declare type Seq = { head: InteractionNode | ActivityGroupNode; tail: InteractionNode | ActivityGroupNode; }; declare type ServerOptions = { port: number; parseUserId: (headers: any) => Promise; cors?: Parameters[0]; logger?: FastifyLoggerOptions; }; export declare const SideEffect: Klass<{ name: { type: "string"; required: true; collection: false; }; handle: { type: "function"; required: true; collection: false; }; }>; declare type SideEffectResult = { result: any; error: any; }; export declare class SQLiteDB implements Database { file: string; options?: (SQLite.Options & { logger: DatabaseLogger; }) | undefined; db: InstanceType; idSystem: IDSystem; logger: DatabaseLogger; constructor(file?: string, options?: (SQLite.Options & { logger: DatabaseLogger; }) | undefined); open(): Promise; query(sql: string, where?: any[], name?: string): Promise; update(sql: string, values: any[], idField?: string, name?: string): Promise; insert(sql: string, values: any[], name?: string): Promise; delete(sql: string, where: any[], name?: string): Promise; scheme(sql: string, name?: string): Promise; close(): void; getAutoId(recordName: string): Promise; parseMatchExpression(key: string, value: [string, string], fieldName: string, fieldType: string, isReferenceValue: boolean, getReferenceFieldValue: (v: string) => string): { fieldValue: string; fieldParams: string[]; } | undefined; } export declare type SQLiteDBOptions = Parameters[1] & { logger: DatabaseLogger; }; export declare function startServer(controller: Controller, options: ServerOptions, dataAPIs?: DataAPIs): Promise; export declare const State: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; }>; declare type Storage_2 = { map: any; beginTransaction: (transactionName?: string) => Promise; commitTransaction: (transactionName?: string) => Promise; rollbackTransaction: (transactionName?: string) => Promise; get: (itemName: string, id: string, initialValue?: any) => Promise; set: (itemName: string, id: string, value: any) => Promise; setup: (entities: KlassInstance[], relations: KlassInstance[], createTables?: boolean) => any; findOne: (entityName: string, ...arg: any[]) => Promise; update: (entityName: string, ...arg: any[]) => Promise; find: (entityName: string, ...arg: any[]) => Promise; create: (entityName: string, data: any) => Promise; delete: (entityName: string, data: any) => Promise; findOneRelationByName: (relationName: string, ...arg: any[]) => Promise; findRelationByName: (relationName: string, ...arg: any[]) => Promise; updateRelationByName: (relationName: string, ...arg: any[]) => Promise; removeRelationByName: (relationName: string, ...arg: any[]) => Promise; addRelationByNameById: (relationName: string, ...arg: any[]) => Promise; getRelationName: (...arg: any[]) => string; listen: (callback: RecordChangeListener) => any; }; export { Storage_2 as Storage } export declare function stringifyAllInstances(): string; export declare function stringifyAttribute(obj: any): any; export declare function stringifyInstance(obj: InertKlassInstance): string; export declare interface System { getEvent: (query: any) => Promise; saveEvent: (interactionEvent: InteractionEvent) => Promise; createActivity: (activity: any) => Promise; updateActivity: (match: MatchExpressionData, activity: any) => Promise; getActivity: (query?: MatchExpressionData) => Promise; conceptClass: Map>; storage: Storage_2; logger: SystemLogger; setup: (entities: KlassInstance[], relations: KlassInstance[], install?: boolean) => Promise; } export declare const SYSTEM_RECORD = "_System_"; export declare type SystemCallback = (...arg: any[]) => any; export declare const systemEntity: InertKlassInstance< { name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass< { name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }>; export declare type SystemLogger = { error: (arg: SystemLogType) => any; info: (arg: SystemLogType) => any; debug: (arg: SystemLogType) => any; child: (fixed: object) => SystemLogger; }; export declare type SystemLogType = { label: string; message: string; [k: string]: any; }; export declare const Transfer: Klass; export declare type TransferInstanceType = KlassInstance; export declare type TransferPublicType = { name: { type: 'string'; required: true; collection: false; }; source: { type: (Klass | Klass | Klass)[]; required: true; collection: false; }; target: { type: (Klass | Klass | Klass)[]; required: true; collection: false; }; }; export declare type UnwrapCollectionType[]> = { [Key in keyof T]: T[Key]["public"]; }[keyof T][number]; declare type UnwrappedActivityInstanceType = { name: string; interactions: KlassInstance, any>[]; transfers: KlassInstance, any>[]; groups: KlassInstance, any>[]; gateways: KlassInstance, any>[]; events: KlassInstance[]; } & KlassInstancePrimitiveProps; export declare type UnwrappedBoolExpressionInstanceType> = { type: string; operator: string; left: UnwrappedBoolExpressionInstanceType | KlassInstance; right?: UnwrappedBoolExpressionInstanceType | KlassInstance; } & KlassInstancePrimitiveProps; export declare const USER_ENTITY = "User"; export declare const WeightedSummation: Klass<{ records: { type: (Klass<{ name: { type: "string"; collection: false; required: true; constraints: { nameFormat({ name }: { name: Atom; }): Atom; }; }; computedData: { type: Klass[]; collection: false; required: false; }; properties: { type: Klass<{ name: { type: "string"; required: true; collection: false; constraints: { format({ name }: { name: Atom; }): Atom; length({ name }: { name: Atom; }): Atom; }; }; type: { type: "string"; required: true; collection: false; options: PropertyTypes[]; }; collection: { type: "boolean"; required: true; collection: false; defaultValue(): boolean; }; args: { computedType: (values: { type: PropertyTypes; }) => string; }; computedData: { collection: false; type: Klass[]; required: false; }; computed: { required: false; type: "function"; collection: false; }; }>; collection: true; required: true; constraints: { eachNameUnique({ properties }: any): Atom; }; defaultValue(): never[]; }; isRef: { required: true; collection: false; type: "boolean"; defaultValue: () => boolean; }; }> | Klass)[]; collection: true; required: true; }; matchRecordToWeight: { type: "function"; collection: false; required: true; }; }>; export { }