/** * Copyright (c) 2026 Sergio Turolla * * This file is part of @r-machine/react, licensed under the * GNU Affero General Public License v3.0 (AGPL-3.0-only). * * You may use, modify, and distribute this file under the terms * of the AGPL-3.0. See LICENSE in this package for details. * * If you need to use this software in a proprietary project, * contact: licensing@codecarvings.com */ import type { RMachine } from "r-machine"; import type { AnyResAtlas, ExperimentalFlags, ResEquipment } from "r-machine/core"; import type { AnyLocale } from "r-machine/locale"; import { type ReactNode } from "react"; import { type SuspenseComponent } from "#r-machine/react/utils"; import { type CreateReactBareToolsetOptions, type ReactBareToolset } from "./react-bare-toolset.cjs"; import type { ReactPlugKitMap } from "./react-plug.cjs"; export type ReactToolset> = Omit, "ReactRMachine"> & { readonly ReactRMachine: ReactRMachine; }; export type ReactRMachine = (props: ReactRMachineProps) => ReactNode; interface ReactRMachineProps { readonly fallback?: ReactNode; readonly Suspense?: SuspenseComponent | null | undefined; readonly children: ReactNode; } export interface ReactImpl { readonly readLocale: () => L | Promise; readonly writeLocale: (newLocale: L) => void | Promise; } export declare function createReactToolset, EF extends ExperimentalFlags, KM extends ReactPlugKitMap>(rMachine: RMachine, kit: KM, impl: ReactImpl, options?: CreateReactBareToolsetOptions): Promise>; export {};