// Core session management
export {
	AgentSession,
	type AgentSessionConfig,
	type AgentSessionEvent,
	type AgentSessionEventListener,
	type CompactionResult,
	type ModelCycleResult,
	type PromptOptions,
	type SessionStats,
} from "./core/agent-session.js";
// Compaction
export {
	type CutPointResult,
	calculateContextTokens,
	compact,
	DEFAULT_COMPACTION_SETTINGS,
	estimateTokens,
	findCutPoint,
	findTurnStartIndex,
	generateSummary,
	getLastAssistantUsage,
	shouldCompact,
} from "./core/compaction.js";
// Custom tools
export type {
	AgentToolUpdateCallback,
	CustomAgentTool,
	CustomToolFactory,
	CustomToolsLoadResult,
	ExecResult,
	LoadedCustomTool,
	RenderResultOptions,
	SessionEvent as ToolSessionEvent,
	ToolAPI,
	ToolUIContext,
} from "./core/custom-tools/index.js";
export { discoverAndLoadCustomTools, loadCustomTools } from "./core/custom-tools/index.js";
export type {
	AgentEndEvent,
	AgentStartEvent,
	BashToolResultEvent,
	BranchEvent,
	BranchEventResult,
	CustomToolResultEvent,
	EditToolResultEvent,
	FindToolResultEvent,
	GrepToolResultEvent,
	HookAPI,
	HookEvent,
	HookEventContext,
	HookFactory,
	HookUIContext,
	LsToolResultEvent,
	ReadToolResultEvent,
	SessionEvent,
	ToolCallEvent,
	ToolCallEventResult,
	ToolResultEvent,
	ToolResultEventResult,
	TurnEndEvent,
	TurnStartEvent,
	WriteToolResultEvent,
} from "./core/hooks/index.js";
// Hook system types and type guards
export {
	isBashToolResult,
	isEditToolResult,
	isFindToolResult,
	isGrepToolResult,
	isLsToolResult,
	isReadToolResult,
	isWriteToolResult,
} from "./core/hooks/index.js";
export { messageTransformer } from "./core/messages.js";
// Model configuration and OAuth
export { findModel, getApiKeyForModel, getAvailableModels } from "./core/model-config.js";
export {
	getOAuthProviders,
	login,
	logout,
	type OAuthAuthInfo,
	type OAuthPrompt,
	type OAuthProvider,
} from "./core/oauth/index.js";
export {
	type CompactionEntry,
	createSummaryMessage,
	getLatestCompactionEntry,
	type LoadedSession,
	loadSessionFromEntries,
	type ModelChangeEntry,
	parseSessionEntries,
	type SessionEntry,
	type SessionHeader,
	SessionManager,
	type SessionMessageEntry,
	SUMMARY_PREFIX,
	SUMMARY_SUFFIX,
	type ThinkingLevelChangeEntry,
} from "./core/session-manager.js";
export {
	type CompactionSettings,
	type RetrySettings,
	type Settings,
	SettingsManager,
} from "./core/settings-manager.js";
// Skills
export {
	formatSkillsForPrompt,
	type LoadSkillsFromDirOptions,
	type LoadSkillsResult,
	loadSkills,
	loadSkillsFromDir,
	type Skill,
	type SkillFrontmatter,
	type SkillWarning,
} from "./core/skills.js";
// Tools
export {
	type BashToolDetails,
	bashTool,
	codingTools,
	editTool,
	type FindToolDetails,
	findTool,
	type GrepToolDetails,
	grepTool,
	type LsToolDetails,
	lsTool,
	type ReadToolDetails,
	readTool,
	type TruncationResult,
	writeTool,
} from "./core/tools/index.js";
// Main entry point
export { main } from "./main.js";
// Theme utilities for custom tools
export { getMarkdownTheme } from "./modes/interactive/theme/theme.js";
