local i=require(script.Parent.Symbol)local W=require(script.Parent.strict)local K=W({Init=i.named("\105\110\105\116"),Render=i.named("\114\101\110\100\101\114"),ShouldUpdate=i.named("\115\104\111\117\108\100\085\112\100\097\116\101");WillUpdate=i.named("\119\105\108\108\085\112\100\097\116\101"),DidMount=i.named("\100\105\100\077\111\117\110\116"),DidUpdate=i.named("\100\105\100\085\112\100\097\116\101"),WillUnmount=i.named("\119\105\108\108\085\110\109\111\117\110\116"),ReconcileChildren=i.named("\114\101\099\111\110\099\105\108\101\067\104\105\108\100\114\101\110");Idle=i.named("\105\100\108\101")},"\067\111\109\112\111\110\101\110\116\076\105\102\101\099\121\099\108\101\080\104\097\115\101")return K
local Symbol = require(script.Parent.Symbol)
local strict = require(script.Parent.strict)

local ComponentLifecyclePhase = strict({
	-- Component methods
	Init = Symbol.named("init"),
	Render = Symbol.named("render"),
	ShouldUpdate = Symbol.named("shouldUpdate"),
	WillUpdate = Symbol.named("willUpdate"),
	DidMount = Symbol.named("didMount"),
	DidUpdate = Symbol.named("didUpdate"),
	WillUnmount = Symbol.named("willUnmount"),

	-- Phases describing reconciliation status
	ReconcileChildren = Symbol.named("reconcileChildren"),
	Idle = Symbol.named("idle"),
}, "ComponentLifecyclePhase")

return ComponentLifecyclePhase