local e=require(script.Parent:WaitForChild("\085\116\105\108"))local y={log=e.Signal.new(),commandRegistered=e.Signal.new();preCommand=e.Signal.new(),postCommand=e.Signal.new();runPreparedCommands=e.Signal.new();roleAdded=e.Signal.new(),roleRemoved=e.Signal.new(),init=e.Signal.new();initDataStore=e.Signal.new();preSyncBans=e.Signal.new();postSyncBans=e.Signal.new();preSyncMain=e.Signal.new();postSyncMain=e.Signal.new();preSyncLogs=e.Signal.new(),postSyncLogs=e.Signal.new()}return y
local Util = require(script.Parent:WaitForChild("Util"))

-- TODO: add hooks for auth, registry, etc

--- @class Hook
local Hook = {
	log = Util.Signal.new(),
	commandRegistered = Util.Signal.new(),
	preCommand = Util.Signal.new(),
	postCommand = Util.Signal.new(),
	runPreparedCommands = Util.Signal.new(),
	roleAdded = Util.Signal.new(),
	roleRemoved = Util.Signal.new(),

	init = Util.Signal.new(),
	initDataStore = Util.Signal.new(),
	preSyncBans = Util.Signal.new(),
	postSyncBans = Util.Signal.new(),
	preSyncMain = Util.Signal.new(),
	postSyncMain = Util.Signal.new(),
	preSyncLogs = Util.Signal.new(),
	postSyncLogs = Util.Signal.new(),
}

return Hook
