import type { WeaveConfig } from "../config/schema"; import type { ResolvedContinuationConfig } from "../config/continuation"; import type { ContextWindowThresholds } from "./context-window-monitor"; import { shouldApplyVariant, markApplied, markSessionCreated, clearSession } from "./first-message-variant"; import { processMessageForKeywords } from "./keyword-detector"; export type CreatedHooks = ReturnType; export declare function createHooks(args: { pluginConfig: WeaveConfig; continuation: ResolvedContinuationConfig; isHookEnabled: (hookName: string) => boolean; directory: string; analyticsEnabled?: boolean; }): { contextWindowThresholds: ContextWindowThresholds | null; rulesInjectorEnabled: boolean; writeGuard: { trackRead: (filePath: string) => void; checkWrite: (filePath: string) => import("./write-existing-file-guard").WriteGuardCheckResult; } | null; firstMessageVariant: { shouldApplyVariant: typeof shouldApplyVariant; markApplied: typeof markApplied; markSessionCreated: typeof markSessionCreated; clearSession: typeof clearSession; } | null; processMessageForKeywords: typeof processMessageForKeywords | null; patternMdOnlyEnabled: boolean; startWork: ((promptText: string, sessionId: string) => import("./start-work-hook").StartWorkResult) | null; workContinuation: ((sessionId: string) => import("./work-continuation").ContinuationResult) | null; compactionRecovery: ((sessionId: string, enabledAgents?: ReadonlySet) => import("./compaction-recovery").CompactionRecoveryResult) | null; workflowStart: ((promptText: string, sessionId: string) => import("../features/workflow").WorkflowHookResult) | null; workflowContinuation: ((sessionId: string, lastAssistantMessage?: string, lastUserMessage?: string) => { continuationPrompt: string | null; switchAgent: string | null; }) | null; workflowCommand: ((message: string, sessionId: string) => import("../features/workflow").WorkflowCommandResult) | null; verificationReminderEnabled: boolean; todoDescriptionOverrideEnabled: boolean; compactionTodoPreserverEnabled: boolean; todoContinuationEnforcerEnabled: boolean; continuation: ResolvedContinuationConfig; analyticsEnabled: boolean; };