import { Plugin, PluginHost, PluginPriority } from '../plugin'; import { PropsType } from '../../../shared/types'; import { ChildType } from '../../renderer'; import { CompType, ComponentSignature } from './types'; import { Subscription } from 'rxjs'; export interface CompProcessPlugin extends Plugin> { prepare(tag: CompType, props: PropsType | undefined, children: ChildType[], extra: { [name: string]: any; }, pluginHost: PluginHost): (result: Node) => void; } export declare function isCompProcessPlugin(whatever: Plugin): whatever is CompProcessPlugin; export interface CompIOPlugin extends Plugin> { wire(node: Node, signature: ComponentSignature, props: PropsType | undefined, tag: CompType, children: (RawValue | Renderable | Node)[], pluginHost: PluginHost): void; } export declare function isCompIOPlugin(whatever: Plugin): whatever is CompIOPlugin; export interface CompPropPlugin extends Plugin> { wireProp(name: string, prop: any, node: Node, signature: ComponentSignature, pluginHost: PluginHost): boolean; } export declare function isCompPropPlugin(whatever: Plugin): whatever is CompPropPlugin; export interface CompContextPlugin extends Plugin> { wireContext(name: string, value: any, recipient: any, subReference: Subscription, node: Node, pluginHost: PluginHost): boolean; } export declare function isCompContextPlugin(whatever: Plugin): whatever is CompContextPlugin; export declare abstract class DefaultReactiveRecipientPlugin implements Plugin> { unique(plugin: Plugin): boolean; abstract defaultInput(): any; abstract defaultOutput(): any; abstract defaultState(): any; abstract defaultContext(): any; priority: PluginPriority; } export declare function isDefaultReactiveRecipientPlugin(whatever: Plugin): whatever is DefaultReactiveRecipientPlugin;