import type { AvailableSkill } from "./agents/dynamic-agent-prompt-builder"; import type { HookName, OhMyOpenCodeConfig } from "./config"; import type { LoadedSkill } from "./features/opencode-skill-loader/types"; import type { BackgroundManager } from "./features/background-agent"; import type { PluginContext } from "./plugin/types"; import type { ModelCacheState } from "./plugin-state"; export type CreatedHooks = ReturnType; type DisposableHook = { dispose?: () => void; } | null | undefined; export type DisposableCreatedHooks = { runtimeFallback?: DisposableHook; todoContinuationEnforcer?: DisposableHook; autoSlashCommand?: DisposableHook; }; export declare function disposeCreatedHooks(hooks: DisposableCreatedHooks): void; export declare function createHooks(args: { ctx: PluginContext; pluginConfig: OhMyOpenCodeConfig; modelCacheState: ModelCacheState; backgroundManager: BackgroundManager; isHookEnabled: (hookName: HookName) => boolean; safeHookEnabled: boolean; mergedSkills: LoadedSkill[]; availableSkills: AvailableSkill[]; }): { disposeHooks: () => void; categorySkillReminder: ReturnType | null; autoSlashCommand: ReturnType | null; stopContinuationGuard: ReturnType | null; compactionContextInjector: ReturnType | null; compactionTodoPreserver: ReturnType | null; todoContinuationEnforcer: ReturnType | null; unstableAgentBabysitter: ReturnType | null; backgroundNotificationHook: ReturnType | null; atlasHook: ReturnType | null; claudeCodeHooks: ReturnType | null; keywordDetector: ReturnType | null; contextInjectorMessagesTransform: ReturnType; thinkingBlockValidator: ReturnType | null; commentChecker: ReturnType | null; toolOutputTruncator: ReturnType | null; directoryAgentsInjector: ReturnType | null; directoryReadmeInjector: ReturnType | null; emptyTaskResponseDetector: ReturnType | null; rulesInjector: ReturnType | null; tasksTodowriteDisabler: ReturnType | null; writeExistingFileGuard: ReturnType | null; hashlineReadEnhancer: ReturnType | null; jsonErrorRecovery: ReturnType | null; readImageResizer: ReturnType | null; todoDescriptionOverride: ReturnType | null; webfetchRedirectGuard: ReturnType | null; contextWindowMonitor: ReturnType | null; preemptiveCompaction: ReturnType | null; sessionRecovery: ReturnType | null; sessionNotification: ReturnType | null; thinkMode: ReturnType | null; modelFallback: ReturnType | null; anthropicContextWindowLimitRecovery: ReturnType | null; autoUpdateChecker: ReturnType | null; agentUsageReminder: ReturnType | null; nonInteractiveEnv: ReturnType | null; interactiveBashSession: ReturnType | null; ralphLoop: ReturnType | null; editErrorRecovery: ReturnType | null; delegateTaskRetry: ReturnType | null; startWork: ReturnType | null; prometheusMdOnly: ReturnType | null; sisyphusJuniorNotepad: ReturnType | null; noSisyphusGpt: ReturnType | null; noHephaestusNonGpt: ReturnType | null; questionLabelTruncator: ReturnType | null; taskResumeInfo: ReturnType | null; anthropicEffort: ReturnType | null; runtimeFallback: ReturnType | null; }; export {};