/** * Whether the two Claude Code integrations that are not an MCP server -- the * status line and the prompt hook -- are switched on. * * Both need an entry in Claude Code's own `settings.json`. Updating the package * cannot add that entry, so an existing user who upgrades gets the code and none * of the behaviour, and nothing tells them. `ai-usage status` reports this so * the place people already look when something seems off is also where they * find out what they have not turned on. * * Only the user-level settings file is read. Claude Code also merges a project's * `.claude/settings.json` and `.claude/settings.local.json`, and an entry there * is invisible from here -- which is why the report says "not found in " * rather than "not installed". */ export interface ClaudeIntegrations { /** The user settings file that was read, or would have been. */ settingsPath: string; /** False when the file does not exist -- the same as having no entries. */ found: boolean; /** Set when the file exists but could not be read or parsed. */ error?: string; /** A `statusLine` command that runs `ai-usage statusline`. */ statusLine: boolean; /** A `UserPromptSubmit` hook command that runs `ai-usage hook`. */ hook: boolean; } /** * Where Claude Code keeps its user settings: the same candidates, in the same * order, as transcript discovery. The first that exists wins; with none, the * first candidate is named so the report says where the entry belongs. * * `AI_USAGE_CLAUDE_SETTINGS` overrides all of it, which is how the tests keep * every status report away from the developer's own `~/.claude`. */ export declare function claudeSettingsPath(): string; export declare function readClaudeIntegrations(path?: string): ClaudeIntegrations;