/**
 * Path validation abstraction for different template structures.
 *
 * This module defines the PathValidator interface and factory function
 * to support both YAML mode (flat structure) and SDK mode (nested structure)
 * path validation.
 */
/**
 * Interface for path validation based on template structure.
 *
 * Implementations handle the differences between:
 * - YAML mode: apis/, pages/, App.tsx, scope.ts at root
 * - SDK mode: server/apis/, client/pages/, client/App.tsx (no scope.ts)
 */
export interface PathValidator {
    /** Prefix for API files (e.g., "apis" or "server/apis") */
    readonly apiPrefix: string;
    /** Prefix for pages (e.g., "pages" or "client/pages") */
    readonly pagesPrefix: string;
    /** Path to App root (e.g., "App.tsx" or "client/App.tsx") */
    readonly appRoot: string;
    /** Check if path is an API file path */
    isApiFilePath(filePath: string): boolean;
    /** Check if path is a direct page path (pages/xyz.tsx) */
    isDirectPagePath(filePath: string): boolean;
    /** Check if path is a scope file */
    isScopeFile(filePath: string): boolean;
    /**
     * Get directories that are protected from modification.
     * These directories cannot be deleted or have their contents directly modified.
     */
    getProtectedDirectories(): readonly string[];
    /**
     * Check if a path should be allowed through the blacklist check.
     * Returns true if the path should bypass blacklist (is a special allowed path).
     *
     * @param relativePath - The relative path to check
     * @param firstDir - The first directory segment of the path
     * @returns true if the path should bypass blacklist checks
     */
    shouldBypassBlacklist(relativePath: string, firstDir: string): boolean;
}
//# sourceMappingURL=path-validator.d.ts.map