/**
 * Project-Scope Initialization Guard
 *
 * Prevents SpecWeave skills from running in non-initialized projects.
 * Provides user-friendly prompts to initialize or disable plugins.
 *
 * ## Background
 *
 * Claude Code plugins are globally enabled in `~/.claude/settings.json`,
 * which means SpecWeave skills appear in ALL projects, not just initialized ones.
 * This guard prevents skills from executing in non-initialized projects and
 * provides clear guidance to users.
 *
 * ## Usage
 *
 * ```typescript
 * import { evaluateProjectScopeGuard } from './project-scope-guard.js';
 *
 * const result = evaluateProjectScopeGuard(userPrompt, process.cwd());
 * if (result.shouldBlock) {
 *   console.error(result.userPromptMessage);
 *   process.exit(1);
 * }
 * ```
 *
 * ## Configuration
 *
 * - Environment: `SPECWEAVE_DISABLE_GUARD=1` to bypass guard
 * - Config: `.specweave/config.json` → `guard.enabled: false`
 *
 * @module core/hooks/project-scope-guard
 * @since 1.0.235
 */
/**
 * Guard evaluation result
 */
export interface GuardResult {
    /** Whether to block the skill invocation */
    shouldBlock: boolean;
    /** Reason for blocking (if applicable) */
    reason?: string;
    /** Whether to prompt the user for action */
    promptUser?: boolean;
    /** User-friendly prompt message */
    userPromptMessage?: string;
}
/**
 * Check if a prompt is invoking a SpecWeave skill
 *
 * Detects patterns like:
 * - sw:increment "feature"
 * - /frontend:architect
 * - /SW:DO (case-insensitive)
 *
 * @param prompt - User's prompt
 * @returns true if it's a SpecWeave skill invocation
 */
export declare function isSpecWeaveSkillInvocation(prompt: string): boolean;
/**
 * Check if SpecWeave is initialized in a project
 *
 * A project is considered initialized if .specweave/config.json exists
 * and is readable.
 *
 * @param projectPath - Path to check (defaults to cwd)
 * @returns true if .specweave/config.json exists
 */
export declare function isProjectInitialized(projectPath?: string): boolean;
/**
 * Evaluate if skill invocation should be guarded
 *
 * @param prompt - User's prompt
 * @param projectPath - Current working directory
 * @returns Guard decision with reason and user prompt if needed
 */
export declare function evaluateProjectScopeGuard(prompt: string, projectPath?: string): GuardResult;
//# sourceMappingURL=project-scope-guard.d.ts.map