import { type ReactNode } from 'react'; import { type MadeView, type UiContract } from '@playfast/reform'; import { type AnyUi, type UiReflection, type WiredUiManifest, type WireTree } from '@playfast/reform/internal'; export interface SlotPropsExternalApi { readonly slotKey?: string; } export type RemoteView = (props: Record, slots: Record ReactNode>, events: Record void>) => ReactNode; export interface RegisteredRemoteView { readonly name: string; readonly view: RemoteView; } type ViewRegistry = Readonly>; declare const ViewSetContract: unique symbol; export type RemoteViewSet = ViewRegistry & { readonly [ViewSetContract]: (contract: C) => C; }; type RemoteUi = UiReflection & AnyUi & { readonly manifest: WiredUiManifest; }; export type RemoteContract = Readonly>; export declare const remoteContract: (contract: C) => C; type RemoteViewFor = U extends UiReflection ? MadeView : never; export type RemoteViews = { readonly [K in keyof C]: RemoteViewFor; }; export declare const remoteViews: (views: RemoteViews) => RemoteViewSet; export interface ClientConfig { readonly views: RemoteViewSet; readonly invoke: (handle: string, payload: unknown) => void; } export declare const renderWireTree: (tree: WireTree, config: ClientConfig) => ReactNode; export {}; //# sourceMappingURL=client.d.ts.map