@connectv/core
Version:
agent-based reactive programming library for typescript/javascript
27 lines (26 loc) • 1.12 kB
TypeScript
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;