import App from './app'; import type { AppConfig, MachinatElement, NativeComponent, ContainerComponent, AnyMachinatPlatform, FragmentProps, PauseProps, ProviderProps, ThunkProps, RawProps } from './types'; export { makeContainer, makeInterface, makeClassProvider, makeFactoryProvider, } from './service'; export { default as BasicBot } from './base/Bot'; export { default as BasicProfiler } from './base/Profiler'; export { default as StateController } from './base/StateController'; export { default as IntentRecognizer } from './base/IntentRecognizer'; export { default as Marshaler } from './base/Marshaler'; export { default as RenderingChannel } from './base/RenderingChannel'; export * from './types'; /** * @category Root */ declare namespace Machinat { const createElement: (type: import("./types").MachinatElementType, config: any, ...children: import("./types").MachinatNode[]) => MachinatElement; const createApp: (config: AppConfig) => App>; const Fragment: (props: FragmentProps) => null; const Pause: (props: PauseProps) => null; const Provider: (props: ProviderProps) => null; const Thunk: (props: ThunkProps) => null; const Raw: (props: RawProps) => null; namespace JSX { type Element = MachinatElement; type ElementClass = NativeComponent | ContainerComponent; interface ElementAttributesProperty { $$typeof: {}; } interface ElementChildrenAttribute { children: {}; } type LibraryManagedAttributes = C extends NativeComponent ? T : C extends ContainerComponent ? U : P; } } export default Machinat;