import { PluginRem, RNPlugin } from '.'; import { AppEvent } from './events'; export declare const apiNamespaces: readonly ["card", "editor", "focus", "messaging", "powerup", "rem", "richText", "settings", "storage", "widget", "window", "search"]; export type NamespaceNames = (typeof apiNamespaces)[number]; export type NamespaceObjects = RNPlugin[(typeof apiNamespaces)[number]]; export type Awaited = T extends PromiseLike ? U : T; export type PluginReactiveDep = { event: AppEvent; key: string | undefined; }; export type ReactiveInfo any> = { thisDeps?: (rem: PluginRem) => PluginReactiveDep[]; argsDeps?: (args: Parameters) => PluginReactiveDep[]; resultDeps?: (retVal: Awaited>) => PluginReactiveDep[]; }; export type NamespaceMethodReactiveInfoMap = { [Namespace in NamespaceNames & keyof RNPlugin]?: { [Method in keyof RNPlugin[Namespace]]?: RNPlugin[Namespace][Method] extends (...args: any) => any ? ReactiveInfo : never; }; }; export type RemObjectReactiveInfoMap = { [Method in keyof PluginRem]?: PluginRem[Method] extends (...args: any) => any ? ReactiveInfo : never; }; export declare const remObjectReactiveInfoMap: RemObjectReactiveInfoMap; export declare const methodNameReactiveInfoMap: NamespaceMethodReactiveInfoMap;