interface Paths { stub: string; rc?: string; } export declare const completionSourceLine: (path: string, shell?: string) => string; /** Paths are local user settings, never a mesh selector or authority source. */ export declare function completionPaths(shell: string): Paths | undefined; export declare function completionOwnership(shell: string, paths: Paths): "managed" | "unrecorded" | "modified"; export declare function readCompletionText(path: string): string | undefined; /** Hold one writer lock and change only the recorded stub and unchanged owned startup block. */ export declare function changeCompletion(operation: "install" | "uninstall", shell: string, paths: Paths, script: string): { operation: "install" | "uninstall"; shell: string; changed: string[]; noOp: boolean; stub: string; startup: string | null; parentShellUnloaded: boolean; }; /** The updated CLI refreshes only existing recorded stubs. It never adds startup wiring. */ export declare function refreshOwnedCompletions(): { changed: string[]; preserved: { shell: string; reason: string; }[]; }; export {}; //# sourceMappingURL=completion-install.d.ts.map