import type { AvailableSkill } from "./agents/dynamic-agent-prompt-builder"; import type { HookName, OpenCodeCodexOrchConfig } 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"; import type { ChatParamsInput, ChatParamsOutput } from "./plugin/chat-params"; export type CreatedHooks = ReturnType; type GenericAsyncHookMap = { [key: string]: ((...args: unknown[]) => Promise) | undefined; }; type StopContinuationGuardHook = (GenericAsyncHookMap & { stop: (sessionID: string) => void; isStopped: (sessionID: string) => boolean; }) | null; type TodoContinuationEnforcerHook = { handler?: (input: unknown) => Promise; cancelAllCountdowns: () => void; } | null; type RalphLoopHook = { event?: (input: unknown) => Promise; startLoop: (sessionID: string, prompt: string, options: { maxIterations?: number; completionPromise?: string; strategy?: "reset" | "continue"; }) => void; cancelLoop: (sessionID: string) => void; } | null; type SessionNotificationHook = ((input: unknown) => Promise) | null; type CompactionContextInjectorHook = ((sessionID: string) => string) | null; type CompactionTodoPreserverHook = { capture: (sessionID: string) => Promise; event?: (input: unknown) => Promise; } | null; type ExecutorHook = (GenericAsyncHookMap & { handler?: (input: unknown) => Promise; }) | null; type AnthropicEffortHook = { "chat.params"?: (input: ChatParamsInput, output: ChatParamsOutput) => Promise; } | null; export declare function createHooks(args: { ctx: PluginContext; pluginConfig: OpenCodeCodexOrchConfig; modelCacheState: ModelCacheState; backgroundManager: BackgroundManager; isHookEnabled: (hookName: HookName) => boolean; safeHookEnabled: boolean; mergedSkills: LoadedSkill[]; availableSkills: AvailableSkill[]; }): { anthropicEffort: AnthropicEffortHook; stopContinuationGuard: StopContinuationGuardHook; backgroundNotificationHook: GenericAsyncHookMap | null; keywordDetector: GenericAsyncHookMap | null; thinkMode: GenericAsyncHookMap | null; claudeCodeHooks: GenericAsyncHookMap | null; autoSlashCommand: GenericAsyncHookMap | null; noSisyphusGpt: GenericAsyncHookMap | null; noOrchestratorGpt: GenericAsyncHookMap | null; startWork: GenericAsyncHookMap | null; ralphLoop: RalphLoopHook; sessionNotification: SessionNotificationHook; todoContinuationEnforcer: TodoContinuationEnforcerHook; unstableAgentBabysitter: GenericAsyncHookMap | null; contextWindowMonitor: GenericAsyncHookMap | null; anthropicContextWindowLimitRecovery: GenericAsyncHookMap | null; agentUsageReminder: GenericAsyncHookMap | null; categorySkillReminder: GenericAsyncHookMap | null; interactiveBashSession: GenericAsyncHookMap | null; compactionTodoPreserver: CompactionTodoPreserverHook; compactionContextInjector: CompactionContextInjectorHook; preemptiveCompaction: GenericAsyncHookMap | null; commentChecker: GenericAsyncHookMap | null; emptyTaskResponseDetector: GenericAsyncHookMap | null; delegateTaskRetry: GenericAsyncHookMap | null; atlasHook: ExecutorHook; executorHook: ExecutorHook; taskResumeInfo: GenericAsyncHookMap | null; readImageResizer: GenericAsyncHookMap | null; jsonErrorRecovery: GenericAsyncHookMap | null; questionLabelTruncator: GenericAsyncHookMap | null; nonInteractiveEnv: GenericAsyncHookMap | null; tasksTodowriteDisabler: GenericAsyncHookMap | null; prometheusMdOnly: GenericAsyncHookMap | null; executorNotepad: GenericAsyncHookMap | null; thinkingBlockValidator: GenericAsyncHookMap | null; contextInjectorMessagesTransform: ReturnType; toolOutputTruncator: ReturnType | null; directoryAgentsInjector: ReturnType | null; directoryReadmeInjector: ReturnType | null; rulesInjector: ReturnType | null; writeExistingFileGuard: ReturnType | null; hashlineReadEnhancer: ReturnType | null; autoUpdateChecker: ReturnType | null; sessionRecovery: ReturnType | null; modelFallback: ReturnType | null; editErrorRecovery: ReturnType | null; runtimeFallback: ReturnType | null; }; export {};