import {IEnhancement, BEAllProps} from '../trans-render/be/types'; import { Specifier } from "../trans-render/dss/types"; import {AbsorbingObject, SharingObject} from '../trans-render/asmr/types'; export interface EndUserProps extends IEnhancement{ With?: Array, Between?: Array, with?: Array, between?: Array, } export interface AllProps extends EndUserProps{ bindingRules: Array, bindings: Array, isParsed?: boolean, rawStatements?: Array } export type SignalEnhancement = 'be-value-added' | 'be-propagating' | undefined; export interface BindingRule { localProp?: string, localEvent?: string, remoteSpecifierString?: string, remoteSpecifier?: Specifier, } export interface Binding { //new and improved localAbsObj: AbsorbingObject; localShareObj: SharingObject; remoteAbsObj: AbsorbingObject; remoteShareObj: SharingObject; //remoteRef: WeakRef; } export type AP = AllProps; export type PAP = Partial; export type ProPAP = Promise; export type BAP = AP & BEAllProps; export interface Actions{ noAttrs(self: BAP): ProPAP; getBindings(self: BAP): ProPAP; hydrate(self: BAP): ProPAP; onRawStatements(self: BAP): void; } export type WithStatement = string; export type BetweenStatement = string; export type TriggerSource = 'local' | 'remote' | 'tie'; export interface SpecificityResult { val?: any, winner?: TriggerSource; }