export type { ChannelManagerOptions } from "./channel-manager.js";
export { ChannelManager, sanitizeChannelName } from "./channel-manager.js";
export {
	buildCommands,
	formatSessionStatus,
	registerGuildCommands,
} from "./commands.js";
export { loadConfig, resolveConfigPath, validateConfig } from "./config.js";
export { Daemon } from "./daemon.js";
export type { DiscordBotOptions } from "./discord-bot.js";
export {
	DiscordBot,
	isAuthorized,
	validateDiscordConfig,
} from "./discord-bot.js";
export type { BridgeClient, EventBridgeOptions } from "./event-bridge.js";
export { EventBridge } from "./event-bridge.js";
export {
	formatBlocker,
	formatCompletion,
	formatCostUpdate,
	formatError,
	formatEvent,
	formatGenericEvent,
	formatMessage,
	formatSessionStarted,
	formatTaskTransition,
	formatToolEnd,
	formatToolStart,
} from "./event-formatter.js";
export type { RunCommandFn, SystemdStatus, SystemdUnitOptions } from "./systemd.js";
export {
	generateUnit,
	getServicePath,
	install as installSystemdUnit,
	status as systemdUnitStatus,
	uninstall as uninstallSystemdUnit,
} from "./systemd.js";
export type { LoggerOptions } from "./logger.js";
export { Logger } from "./logger.js";
export type {
	BatcherLogger,
	BatcherOptions,
	SendFn,
	SendPayload,
} from "./message-batcher.js";
export { MessageBatcher } from "./message-batcher.js";
export type {
	DiscordMessageLike,
	OrchestratorConfig,
	OrchestratorDeps,
} from "./orchestrator.js";
export { Orchestrator } from "./orchestrator.js";
export { scanForProjects } from "./project-scanner.js";
export { SessionManager } from "./session-manager.js";
export type {
	CostAccumulator,
	DaemonConfig,
	FormattedEvent,
	LogEntry,
	LogLevel,
	ManagedSession,
	PendingBlocker,
	ProjectInfo,
	ProjectMarker,
	SessionStatus,
	StartSessionOptions,
	VerbosityLevel,
} from "./types.js";
export { INIT_TIMEOUT_MS, MAX_EVENTS } from "./types.js";
export { shouldShowAtLevel, VerbosityManager } from "./verbosity.js";
