import * as React from 'react'; import { Stream, Subject, Subscription } from './xs'; import { $ } from './fantasy/typeclasses'; import * as PropTypes from 'prop-types'; export declare const XREACT_ENGINE = "@reactive-react/xreact.engine"; export interface Actions { [propName: string]: (...v: any[]) => T; } export interface Plan { (intent: Subject, props?: Xprops): Machine; } export interface Update { (current: S): Partial; } export interface Machine { actions?: Actions; update$: $>; } export interface ConfiguredMachine { actions?: Actions; update$: $>; } export interface Xprops { actions?: Actions; history?: boolean; [propName: string]: any; } export declare class Xcomponent extends React.PureComponent, S> { machine: ConfiguredMachine; subscription: Subscription; context: ContextEngine; } export interface XcomponentClass { displayName: string; contextTypes?: ContextType; defaultProps?: any; new (props: Xprops, context: ContextEngine): Xcomponent; } export interface History { path: Subject number>; history: $; } export interface Stamp { value: S; time: number; } export interface Engine { intent$: Subject; history$: Subject; } export interface ContextEngine { [name: string]: Engine; } export interface ContextType { [name: string]: PropTypes.Requireable>; }