/// import { QWidget, Component } from "@nodegui/nodegui"; import { Fiber } from "react-reconciler"; import { AppContainer } from "../reconciler"; declare type UpdatePayload = any; export interface RNProps { } export declare abstract class RNComponent { static tagName: string; abstract setProps(newProps: RNProps, oldProps: RNProps): void; abstract appendInitialChild(child: Component): void; abstract appendChild(child: Component): void; abstract insertBefore(child: Component, beforeChild: Component): void; abstract removeChild(child: Component): void; } export declare abstract class RNWidget extends QWidget implements RNComponent { static tagName: string; abstract setProps(newProps: RNProps, oldProps: RNProps): void; abstract appendInitialChild(child: QWidget): void; abstract appendChild(child: QWidget): void; abstract insertBefore(child: QWidget, beforeChild: QWidget): void; abstract removeChild(child: QWidget): void; } export declare abstract class ComponentConfig { abstract tagName: string; getContext(parentContext: any, rootInstance: AppContainer): {}; abstract shouldSetTextContent(nextProps: RNProps): boolean; abstract createInstance(newProps: RNProps, rootInstance?: AppContainer, context?: any, workInProgress?: Fiber): RNComponent; finalizeInitialChildren(instance: RNComponent, newProps: RNProps, rootContainerInstance: AppContainer, context: any): boolean; commitMount(instance: RNComponent, newProps: RNProps, internalInstanceHandle: any): void; prepareUpdate(instance: RNComponent, oldProps: RNProps, newProps: RNProps, rootContainerInstance: AppContainer, hostContext: any): UpdatePayload; abstract commitUpdate(instance: RNComponent, updatePayload: any, oldProps: RNProps, newProps: RNProps, finishedWork: Fiber): void; } declare type ReactNodeGuiTag

= string | React.ComponentType

; export declare const getComponentByTagName: (tagName: string) => ComponentConfig; export declare function registerComponent(config: ComponentConfig): ReactNodeGuiTag; export {};