local Y=require(script.GlobalConfig)local i=require(script.createReconciler)local h=require(script.createReconcilerCompat)local x=require(script.RobloxRenderer)local C=require(script.strict)local P=require(script.Binding)local R=i(x)local K=h(R)local A=C({Component=require(script.Component);createElement=require(script.createElement);createFragment=require(script.createFragment);oneChild=require(script.oneChild);PureComponent=require(script.PureComponent),None=require(script.None);Portal=require(script.Portal);createRef=require(script.createRef),forwardRef=require(script.forwardRef);createBinding=P.create,joinBindings=P.join,createContext=require(script.createContext);Change=require(script.PropMarkers.Change);Children=require(script.PropMarkers.Children),Event=require(script.PropMarkers.Event),Ref=require(script.PropMarkers.Ref);mount=R.mountVirtualTree,unmount=R.unmountVirtualTree,update=R.updateVirtualTree,reify=K.reify,teardown=K.teardown,reconcile=K.reconcile,setGlobalConfig=Y.set;UNSTABLE={}})return A
--~strict
--[[
	Packages up the internals of Roact and exposes a public API for it.
]]

local GlobalConfig = require(script.GlobalConfig)
local createReconciler = require(script.createReconciler)
local createReconcilerCompat = require(script.createReconcilerCompat)
local RobloxRenderer = require(script.RobloxRenderer)
local strict = require(script.strict)
local Binding = require(script.Binding)

local robloxReconciler = createReconciler(RobloxRenderer)
local reconcilerCompat = createReconcilerCompat(robloxReconciler)

local Roact = strict({
	Component = require(script.Component),
	createElement = require(script.createElement),
	createFragment = require(script.createFragment),
	oneChild = require(script.oneChild),
	PureComponent = require(script.PureComponent),
	None = require(script.None),
	Portal = require(script.Portal),
	createRef = require(script.createRef),
	forwardRef = require(script.forwardRef),
	createBinding = Binding.create,
	joinBindings = Binding.join,
	createContext = require(script.createContext),

	Change = require(script.PropMarkers.Change),
	Children = require(script.PropMarkers.Children),
	Event = require(script.PropMarkers.Event),
	Ref = require(script.PropMarkers.Ref),

	mount = robloxReconciler.mountVirtualTree,
	unmount = robloxReconciler.unmountVirtualTree,
	update = robloxReconciler.updateVirtualTree,

	reify = reconcilerCompat.reify,
	teardown = reconcilerCompat.teardown,
	reconcile = reconcilerCompat.reconcile,

	setGlobalConfig = GlobalConfig.set,

	-- APIs that may change in the future without warning
	UNSTABLE = {},
})

return Roact
