/** Stamp file recording the last registration (DESIGN D5). */ export declare const STAMP_NAME = "agent-registration.json"; export interface RegistrationStamp { version: string; tools: string[]; ruleTextHash: string; } export type AgentRulesChoice = Record; export declare function computeRuleTextHash(): string; export declare function deploySkills(options: { home: string; tools: readonly string[]; }): Promise; export declare function readAgentRegistrationStamp(configRoot: string): Promise; export declare function registerAgentTools(options: { home: string; configRoot: string; tools: readonly string[]; version: string; }): Promise; /** * Lazy stamp check (DESIGN D5): stamp-absent runs are zero-cost no-ops; * a `!==` drift (version or ruleTextHash) refreshes the registered tools — * skill always re-copied, rule files only when the text drifted. Honors * `agentRules` (opted-out tools are skipped entirely) — when the option is * omitted, the choices persisted in `/config.json` are loaded so * a production opt-out survives drift refreshes. Refresh failures are * per-tool stderr notices, never fatal; when EVERY attempted tool failed, * one additional summary notice distinguishes total from partial failure * (#130). */ export declare function checkAgentRegistration(options: { home: string; configRoot: string; version: string; agentRules?: AgentRulesChoice; writeStderr: (value: string) => void; }): Promise<{ refreshed: boolean; }>; /** * Disk-scan reversal (DESIGN D2, `init --unregister`): * - owned rules files + skill copies unlinked by fixed registry path; * - shared surfaces stripped of our marker regions / exact array * entries — NEVER restored from the `.scoutline-bak` (a user who * edited the file since registration would lose their edits); * - every backup we minted is deleted (the escape hatch is spent); * - the stamp is removed; * - `agentRules` is cleared through the config store, preserving the * rest of the config (providers survive). * * Nothing registered → a clean no-op (no config minting). Throws never: * per-surface ENOENT is the expected pre-registration state. */ export declare function unregisterAgentTools(options: { home: string; configRoot: string; configFilePath: string; inspectConfig?: (o: { filePath: string; }) => Promise<{ status: "absent" | "valid" | "corrupt"; config?: import("../config-store.js").ScoutlineConfig; }>; writeConfig?: (config: import("../config-store.js").ScoutlineConfig, o: { filePath: string; }) => Promise; }): Promise; //# sourceMappingURL=deploy.d.ts.map