/**
 * Constants for AppShell filesystem operations.
 *
 * This module contains blacklist patterns, protected paths, and validation
 * rules used by the AppShell to enforce security constraints on file operations.
 */
/**
 * Files that cannot be deleted, written to, or modified directly.
 * These are critical configuration files that could break the application.
 */
export declare const PROTECTED_EXACT_PATHS: readonly ["package.json", "tsconfig.json", "turbo.json", "superblocks.json", "vite.config.ts"];
export declare const PROTECTED_EXACT_PATHS_WITH_PACKAGE_LOCK: readonly ["package.json", "tsconfig.json", "turbo.json", "superblocks.json", "vite.config.ts", "yarn.lock", "pnpm-lock.yaml", "package-lock.json"];
/**
 * Directories that cannot be deleted or have their contents directly modified.
 * - .git: Version control
 * - node_modules: Dependencies
 * - .superblocks: Internal system files
 * - pages: Must use subdirectories, not direct files
 * - components: Framework internals
 * - apis: Must use virtual API file interface
 */
export declare const PROTECTED_DIRECTORIES: readonly [".git", "node_modules", ".superblocks", "pages", "apis"];
/**
 * Regex patterns for protected files (environment files, package manager configs).
 */
export declare const PROTECTED_FILE_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp];
export type FileOperationBlacklistOptions = {
    /**
     * Use less-protected patterns, flagging to allow deletion of package-manager lock files.
     */
    useLessProtectedPatterns?: boolean;
};
/**
 * Clark AI specific folders to blacklist from context.
 * These are framework/system folders that Clark shouldn't edit or include in prompts.
 */
export declare const CLARK_APP_BLACKLIST_PATTERNS: readonly [];
/**
 * Consolidated blacklist configuration for file operations.
 */
export declare function getFileOperationBlacklist(options?: FileOperationBlacklistOptions): {
    readonly exactPaths: readonly ["package.json", "tsconfig.json", "turbo.json", "superblocks.json", "vite.config.ts"] | readonly ["package.json", "tsconfig.json", "turbo.json", "superblocks.json", "vite.config.ts", "yarn.lock", "pnpm-lock.yaml", "package-lock.json"];
    readonly directories: readonly [".git", "node_modules", ".superblocks", "pages", "apis"];
    readonly patterns: readonly [RegExp, RegExp, RegExp, RegExp];
};
/**
 * Standard ignore patterns for glob operations.
 * Files matching these patterns are excluded from file listings.
 */
export declare const STANDARD_IGNORE_PATTERNS: readonly ["node_modules/**"];
/**
 * File extensions that are considered application code.
 */
export declare const APPLICATION_CODE_EXTENSIONS: readonly [".ts", ".tsx", ".js", ".jsx", ".css", ".yaml", ".yml"];
/**
 * Glob patterns for listing application files.
 */
export declare const APPLICATION_FILE_PATTERNS: readonly ["**/*.{ts,tsx,yaml,css}", "package.json"];
/**
 * Operation types for validation.
 */
export type FileOperation = "read" | "write" | "delete" | "rename" | "list";
/**
 * Validation options for file operations.
 */
export interface FileOperationValidationOptions {
    /** Check against blacklist patterns (default: true) */
    checkBlacklist?: boolean;
    /** Require file to be read before writing (default: true for write/edit) */
    checkReadBeforeWrite?: boolean;
    /** Allow operations on API virtual files (default: false for direct writes) */
    allowApiFiles?: boolean;
    /** Allow operations on scope files (default: false) */
    allowScopeFiles?: boolean;
    /** Allow operations on package.json (default: false) */
    allowPackageJson?: boolean;
    /** Allow direct page paths like pages/xyz.tsx (default: false) */
    allowDirectPagePath?: boolean;
}
/**
 * Default validation options per operation type.
 */
export declare const DEFAULT_VALIDATION_OPTIONS: Record<FileOperation, FileOperationValidationOptions>;
//# sourceMappingURL=constants.d.ts.map