import type { RemoteComponentType, PropsForRemoteComponent } from '@remote-ui/core'; export interface RootNode extends Node { unmount(): void; act(action: () => T, options?: { update?: boolean; }): T; } export interface Node { readonly props: Props; readonly type: RemoteComponentType | null; readonly instance: any; readonly children: (Node | string)[]; readonly descendants: (Node | string)[]; readonly text: string; prop(key: K): Props[K]; is>(type: Type): this is Node>; find>(type: Type, props?: Partial>): Node> | null; findAll | string>(type: Type, props?: Partial>): Node>[]; findWhere(predicate: Predicate): Node | null; findAllWhere(predicate: Predicate): Node[]; trigger>(prop: K, ...args: DeepPartial>): MaybeFunctionReturnType>; triggerKeypath(keypath: string, ...args: unknown[]): T; debug(options?: DebugOptions): string; toString(): string; } export interface DebugOptions { all?: boolean; depth?: number; verbosity?: number; } type FunctionKeys = { [K in keyof T]-?: NonNullable extends (...args: any[]) => any ? K : never; }[keyof T]; type DeepPartial = T extends (infer U)[] ? DeepPartial[] : T extends ReadonlyArray ? ReadonlyArray> : T extends object ? { [K in keyof T]?: DeepPartial; } : T; export type Predicate = (node: Node) => boolean; type MaybeFunctionReturnType = T extends (...args: any[]) => any ? ReturnType : unknown; type MaybeFunctionParameters = T extends (...args: any[]) => any ? Parameters : []; export {}; //# sourceMappingURL=types.d.ts.map