import { type PathCtx } from '../config/paths.js'; import type { CliContext } from '../context.js'; /** The account the editor pointer currently resolves to, or null. */ export declare function editorTargetAccount(context: CliContext): { name: string; loggedIn: boolean; } | null; /** * The account the editor pointer targets, resolved from paths alone. * * A separate, lighter version of editorTargetAccount for callers that only have * a paths context. It exists because the editor's Claude reads an account's login * DIRECTLY through this pointer, so ccx is not in the loop for those sessions and * cannot know one is running: renewing that login can sign the editor out the * same way it used to sign terminal sessions out. * * Returns null when the editor integration is off, so nothing is protected * needlessly. */ export declare function editorPointerAccount(accounts: Array<{ name: string; dir: string; }>, c?: PathCtx): string | null; /** * The editor points CLAUDE_CONFIG_DIR at this stable path, and ccx flips it to * whichever account is active. It is the editor's OWN pointer (distinct from the * daemon's "active" link) so `ccx editor off` and `ccx daemon uninstall` never * disturb each other. */ export declare function editorJunctionPath(context: CliContext): string; /** * Point the editor pointer at the active account (seeded so the editor's Claude * does not re-onboard). Returns false when there is no usable active account. */ export declare function syncEditorJunctionToActive(context: CliContext): boolean; /** * Repoint the editor pointer at the active account, but ONLY if the editor is * actually set up (the pointer already exists). Safe to call from any switch * site; it is a no-op when the editor integration is off. */ export declare function syncEditorPointerIfEnabled(context: CliContext): void; /** Remove the editor pointer (used by `ccx editor off`). */ export declare function removeEditorJunction(context: CliContext): void;