@c11/engine.types
Version:
Typescript types for everything engine related
33 lines (32 loc) • 1.01 kB
TypeScript
/// <reference types="react" />
import { ProducersList, StructOperation, ProducerInstance, ProducerMeta } from "./producer";
export interface RenderConfig {
element: any;
root: any;
}
export interface ViewConfig {
sourceId: string;
buildId: string;
meta: ProducerMeta;
props: StructOperation;
fn: ViewFn<any>;
}
export declare type RootElement = HTMLElement | null;
export interface ViewInstance {
id: string;
sourceId: string;
producers: ProducerInstance[];
}
export interface RenderInstance {
unmount: () => RenderInstance;
mount: () => RenderInstance;
getRoot: () => RootElement;
}
export declare type ViewFn<ExternalProps> = (props: any) => React.ReactElement<ExternalProps> | null;
export declare type ViewExtra = {
producers: (producers: ProducersList) => void;
};
export declare type View<ExternalProps> = ViewFn<ExternalProps> & ViewExtra;
export declare type ViewsList = View<any> | View<any>[] | ViewsList[] | {
[k: string]: ViewsList;
};