import { AIProviderType } from '../aiProvider/index.js';
/**
 * Supported AI providers mapping
 * Maps string identifiers to AIProviderType enum values
 *
 * @example
 * ```typescript
 * const provider = AI_PROVIDERS.OPENAI; // AIProviderType.OpenAI
 * ```
 */
export declare const AI_PROVIDERS: Record<string, AIProviderType>;
/**
 * Default GitHub bot identifier and comment header/footer configuration
 * Contains standard identifiers and templates for GitHub PR comments
 *
 * @example
 * ```typescript
 * const comment = `${GITHUB_BOT_IDENTIFIER_DEFAULTS.COMMENT_HEADER}\n\nReview content\n\n${GITHUB_BOT_IDENTIFIER_DEFAULTS.COMMENT_FOOTER}`;
 * ```
 */
export declare const GITHUB_BOT_IDENTIFIER_DEFAULTS: {
    IDENTIFIER: string;
    COMMENT_HEADER: string;
    USER_AGENT: string;
    COMMENT_FOOTER: string;
};
/**
 * Default GitHub REST API configuration values
 * Contains standard API endpoints, headers, and error messages for GitHub integration
 *
 * @example
 * ```typescript
 * const apiUrl = `${GITHUB_API_DEFAULTS.PR_BASE_URL}/${owner}/${repo}/pulls`;
 * ```
 */
export declare const GITHUB_API_DEFAULTS: {
    readonly PR_BASE_URL: "https://api.github.com/repos";
    readonly USER_AGENT: string;
    readonly API_VERSION: "2022-11-28";
    readonly ACCEPT_HEADER: "application/vnd.github+json";
    readonly START_SIDE: "RIGHT";
    readonly RESPONSE_TYPE: "json";
    readonly SAML_ERROR_MESSAGE: "🔒 GitHub SAML SSO Required! Your organization requires SAML Single Sign-On authentication for Personal Access Tokens.\n\n      SOLUTION STEPS:\n      1. Go to your Personal Access Tokens page: https://github.com/settings/tokens\n      2. Find your token and click \"Configure SSO\" next to it\n      3. Authorize the token for your organization\n      4. Click \"Authorize\" to grant SAML SSO access\n\n      Alternative: Create a new token and immediately authorize it for SSO:\n      1. Create new token: https://github.com/settings/tokens/new\n      2. Select required scopes (repo for private repos, public_repo for public)\n      3. Click \"Configure SSO\" and authorize for organization\n\n      Documentation: https://docs.github.com/articles/authenticating-to-a-github-organization-with-saml-single-sign-on/";
};
/**
 * Supported file extensions for code analysis by language/platform
 * Organizes file extensions by technology stack for targeted analysis
 *
 * @example
 * ```typescript
 * const isApexFile = SUPPORTED_FILE_EXTENSIONS.APEX.includes('.cls');
 * const jsExtensions = SUPPORTED_FILE_EXTENSIONS.JAVASCRIPT;
 * ```
 */
export declare const SUPPORTED_FILE_EXTENSIONS: {
    readonly APEX: readonly [".cls", ".trigger"];
    readonly JAVASCRIPT: readonly [".js", ".mjs", ".cjs"];
    readonly TYPESCRIPT: readonly [".ts"];
    readonly HTML: readonly [".html"];
    readonly CSS: readonly [".css"];
    readonly XML: readonly [".xml"];
    readonly AURA: readonly [".cmp"];
    readonly METADATA: readonly [".xml", ".json", ".yaml", ".yml"];
    readonly PLSQL: readonly [".sql", ".pks", ".pkb", ".prc", ".fnc", ".trg", ".typ", ".tps", ".tpb"];
    readonly VISUALFORCE: readonly [".page", ".component"];
    readonly JAVA: readonly [".java"];
};
/**
 * Directories to exclude from analysis
 * List of common directories that should be skipped during code analysis
 *
 * @example
 * ```typescript
 * const shouldExclude = EXCLUDED_DIRECTORIES.includes('node_modules');
 * ```
 */
export declare const EXCLUDED_DIRECTORIES: string[];
/**
 * Test framework patterns and identifiers for Apex testing
 * Contains patterns used to identify test files and deprecated testing frameworks
 *
 * @example
 * ```typescript
 * const isTestFile = content.includes(TEST_PATTERNS.APEX_TEST_ANNOTATION);
 * const usesOldFramework = content.includes(TEST_PATTERNS.SOBJECT_MOCKER);
 * ```
 */
export declare const TEST_PATTERNS: {
    readonly APEX_TEST_ANNOTATION: "@isTest";
    readonly SOBJECT_MOCKER: "SObjectMocker";
    readonly CLASS_MOCKER: "ClassMocker";
    readonly GENERATE_MOCK_SOBJECT: "generateMockSObject";
    readonly TEST_FILE_PATTERN: "test";
};
/**
 * Default Datadog configuration values for observability
 * Contains standard settings for logging and metrics integration with Datadog
 *
 * @example
 * ```typescript
 * const logConfig = {
 *   service: DATADOG_DEFAULT_CONSTANTS.service,
 *   environment: DATADOG_DEFAULT_CONSTANTS.environment
 * };
 * ```
 */
export declare const DATADOG_DEFAULT_CONSTANTS: {
    readonly ddsource: "AIPRReview";
    readonly hostname: "sfcoe-aipr-review";
    readonly service: "sfcoe-aipr-review";
    readonly prefix: "sfcoe_aipr_review.";
    readonly environment: "development";
    readonly logLevel: "debug";
    readonly timestampFormat: "MMM-DD-YYYY HH:mm:ss";
    readonly observabilityFlags: readonly ["pull-request-id", "ai-provider", "git-provider", "git-owner", "git-repo"];
};
/**
 * Default patterns for JavaScript code analysis
 * Predefined patterns to detect common JavaScript issues and violations
 *
 * @example
 * ```typescript
 * const consolePattern = JS_PATTERNS.find(p => p.pattern === 'console.log');
 * console.log(consolePattern.suggestedFix);
 * ```
 */
export declare const JS_PATTERNS: {
    pattern: string;
    ruleType: string;
    issue: string;
    suggestedFix: string;
    ruleId: string;
}[];
/**
 * Package and message bundle identifiers
 * Contains package metadata and command identifiers
 *
 * @example
 * ```typescript
 * console.log(`Running ${PACKAGE_CONSTANTS.NAME} package`);
 * const command = PACKAGE_CONSTANTS.REVIEW_COMMAND;
 * ```
 */
export declare const PACKAGE_CONSTANTS: {
    readonly NAME: "ds-sfcoe-ailabs";
    readonly REVIEW_COMMAND: "ks.review.diff";
};
/**
 * Default values for command flags and configuration
 * Provides fallback values for CLI command options and API settings
 *
 * @example
 * ```typescript
 * const fromRef = flags.from || COMMAND_DEFAULTS.GIT_FROM_REF;
 * const aiProvider = flags.aiProvider || COMMAND_DEFAULTS.AI_PROVIDER;
 * ```
 */
export declare const COMMAND_DEFAULTS: {
    readonly GIT_FROM_REF: "HEAD~1";
    readonly GIT_TO_REF: "HEAD";
    readonly AI_PROVIDER: AIProviderType.AzureOpenAI;
    readonly GIT_PROVIDER: "GitHub";
    readonly AI_MODEL: "gpt-4o-mini-eastus2";
    readonly AI_API_ENDPOINT: "https://dts-apigw-sandbox.docusignhq.com/";
    readonly AI_API_VERSION: "2024-08-01-preview";
    readonly SCA_RULESET: "../../common/contextProviders/scat/sf-code-analyzer-ruleset.yml";
    readonly PMD_RULESET: "../../common/contextProviders/scat/pmd-ruleset.xml";
    readonly DEFAULT_MAX_TOKENS: 4096;
    readonly DEFAULT_PROMPT_TEMPLATE: "$prompt\n\n# Code Snippet:\n$codeSnippet\n\n# Hints:\n$hintsText";
    readonly DEFAULT_SARIF_FILE_NAME: "results.sarif";
    readonly SF_CODE_ANALYZER_LOGS_FOLDER: "code-analyzer-logs";
};
/**
 * Default values for review command hints and messages
 * Contains fallback values and templates for review output formatting
 *
 * @example
 * ```typescript
 * const ruleId = hint.ruleId || REVIEW_COMMAND_HINTS_DEFAULTS.RULE_ID;
 * const tableHeader = REVIEW_COMMAND_HINTS_DEFAULTS.AI_ANALYSIS_TABLE_HEADERS;
 * ```
 */
export declare const REVIEW_COMMAND_HINTS_DEFAULTS: {
    RULE_ID: string;
    MESSAGE: string;
    SUGGESTION: string;
    SUGGESTION_RULE_TYPE: string;
    RULE_TYPE: string;
    FILE_NAME: string;
    LINE_NUMBER: number;
    AI_ANALYSIS_TABLE_HEADERS: string;
};
/**
 * Regex pattern to match file extensions
 * Used to extract the last file extension from file paths
 *
 * @example
 * ```typescript
 * const extension = 'file.cls'.match(LAST_EXTENSION_REGEX)?.[0]; // '.cls'
 * ```
 */
export declare const LAST_EXTENSION_REGEX: RegExp;
/**
 * DocuSign-specific issues and patterns for code analysis
 * Defines organization-specific rules and their corresponding messages and fixes
 *
 * @example
 * ```typescript
 * const testIssue = DOCUSIGN_SPECIFIC_ISSUES.TEST_FRAMEWORK;
 * console.log(testIssue.suggestedFix);
 * ```
 */
export declare const DOCUSIGN_SPECIFIC_ISSUES: {
    readonly TEST_FRAMEWORK: {
        readonly ruleType: "Docusign Specific";
        readonly issue: "Using old test framework which takes huge time to run";
        readonly suggestedFix: "[Use SObjectMocker, ClassMocker, or generateMockSObject.](https://docusign.atlassian.net/wiki/spaces/EA/pages/720143853/DS+Apex+Test+-+Overview)";
    };
    readonly GLOBAL_DESCRIBE_USAGE: {
        readonly ruleType: "Docusign Specific";
        readonly issue: "Using Schema.getGlobalDescribe() which has performance issues";
        readonly suggestedFix: "[Use COE_SchemaUtils framework.](https://docusign.atlassian.net/wiki/spaces/EA/pages/155880835/Better+getGlobalDescribe)";
    };
    readonly TRANSACTION_LOGGER_MISSING: {
        readonly ruleType: "Docusign Specific";
        readonly issue: "New Apex class does not have any reference to TransactionLogger methods";
        readonly suggestedFix: "[Add TransactionLogger methods for better tracking and observability.](https://docusign.atlassian.net/wiki/x/HwPaGQ)";
    };
};
/**
 * Supported Salesforce file extensions for platform-specific analysis
 * List of file extensions commonly used in Salesforce development
 *
 * @example
 * ```typescript
 * const isSalesforceFile = SUPPORTED_SALESFORCE_EXTENSIONS.includes('.cls');
 * ```
 */
export declare const SUPPORTED_SALESFORCE_EXTENSIONS: string[];
/**
 * Mapping of rule types to human-readable categories
 * Maps linter rule IDs to descriptive category names for better user understanding
 *
 * @example
 * ```typescript
 * const category = RULE_TYPE_MAP['no-var']; // 'JavaScript Best Practices'
 * const unknownRule = RULE_TYPE_MAP['unknown-rule'] || 'General';
 * ```
 */
export declare const RULE_TYPE_MAP: {
    [key: string]: string;
};
/**
 * Suggested fixes for common code issues
 * Maps rule IDs to actionable fix descriptions for developers
 *
 * @example
 * ```typescript
 * const fix = SUGGESTED_FIXES['no-var']; // 'Replace var with let or const for block scoping'
 * const defaultFix = SUGGESTED_FIXES[ruleId] || 'Review and refactor as needed';
 * ```
 */
export declare const SUGGESTED_FIXES: {
    [key: string]: string;
};
