/** * v0.7 — REVOKE-CHECKLIST.md generator. * Per docs/plan/v0.7-uninstall-lifecycle.md §8 + §10 #7. * * Collects the workspace-specific bits needed to write a useful revoke * checklist: Discord/Slack/Anthropic identifiers (non-secret), encoded * Claude Code project paths, channel names, and process-check command * hints. The checklist is written twice — to the workspace root (so the * user sees it after uninstall) and inside the archive zip (so it travels * with the export). */ export interface RevokeChecklistData { workspace: string; workspaceSlug: string; generatedAt: string; /** From .env, non-secret. */ discordApplicationId?: string; /** Best-effort prefix (sk-ant-api03-XXXX...) — non-secret. */ anthropicKeyPrefix?: string; /** Slack channels SoloSquad created by convention. */ slackChannelsByConvention: string[]; /** Best-effort path candidates for ~/.claude/projects transcripts. */ pmSessionTranscriptDirs: string[]; orgSlugs: string[]; } export declare function collectRevokeData(workspace: string, nowIso?: string): RevokeChecklistData; export declare function renderRevokeChecklist(data: RevokeChecklistData): string; /** * Stand-alone references for the archive's `manual-revoke-required/` folder. * Each section becomes a separate markdown so the archive is self-contained * even if REVOKE-CHECKLIST.md is misplaced. */ export declare function renderManualRevokeFiles(data: RevokeChecklistData): Map; declare function parseEnvLines(text: string): Map; /** * Discord bot tokens are structured as `..`. * The first segment decodes to the application ID. We surface a best-effort * extraction so the checklist can show a clickable identifier. */ declare function extractDiscordAppIdFromToken(token: string): string | undefined; declare function guessClaudeProjectDirs(workspace: string, orgSlugs: string[]): string[]; /** Mostly for tests. */ export declare const _revokeInternals: { parseEnvLines: typeof parseEnvLines; extractDiscordAppIdFromToken: typeof extractDiscordAppIdFromToken; guessClaudeProjectDirs: typeof guessClaudeProjectDirs; }; export {};