import { Pipe, Eval } from "lazy-space"; import { Entity } from "./entity"; export declare type Component = object; export interface EntityView { entity: Entity; components: { [name: string]: Component; }; } export declare abstract class ComponentSource extends Pipe { readonly components: C[]; readonly name: string; constructor(components: C[], name: string); protected abstract pass(entity: EntityView): Eval; }