UNPKG

@connectv/core

Version:

agent-based reactive programming library for typescript/javascript

27 lines (26 loc) 1.12 kB
import { PinLike } from '../pin/pin-like'; import { Agent } from './agent'; import { Signature } from './signature'; import { Composition } from './composition'; declare type _ChildType = PinLike | Agent; declare type _PinDict = { [name: string]: PinLike; }; export declare type TrackFunc = (...children: _ChildType[]) => void; export declare type CompositionFactory = (track: TrackFunc) => [_PinDict | PinLike[], _PinDict | PinLike[]]; declare class InlineComposition extends Composition { readonly factory: CompositionFactory; readonly inpins: _PinDict | PinLike[]; readonly outpins: _PinDict | PinLike[]; constructor(factory: CompositionFactory, signature: Signature); init(): void; wire(): void; build(): void; createInput(label: string): any; createOutput(label: string): any; createEntries(): PinLike[]; createExits(): PinLike[]; } export declare function composition(factory: CompositionFactory): () => InlineComposition; export declare function composition(signature: Signature, factory: CompositionFactory): () => InlineComposition; export default composition;