/**
 * Authoritative ERP → Database Engine Mapping
 *
 * Single source of truth for Phase 4 schema generation.
 * No ERP-to-database mapping may exist anywhere else in the codebase.
 *
 * Covers all commonly deployed enterprise ERP systems:
 *   SAP S/4HANA        → SAP HANA
 *   SAP ECC (legacy)    → Oracle / Db2 / SQL Server
 *   SAP Business One    → SQL Server / SAP HANA
 *   Oracle ERP Cloud    → Oracle Database
 *   Oracle NetSuite     → Oracle Database
 *   Oracle JD Edwards   → Oracle / Db2
 *   Oracle PeopleSoft   → Oracle Database
 *   Microsoft Dynamics  → SQL Server
 *   Infor               → Oracle / SQL Server / Db2
 *   Epicor              → SQL Server
 *   Sage X3             → SQL Server
 *   Sage Intacct        → API-only (cloud)
 *   IFS                 → SQL Server / Oracle
 *   Acumatica           → API-only (cloud)
 *   Unit4               → SQL Server
 *   SYSPRO              → SQL Server
 *   Workday             → API-only (no database)
 */
export type ERPSystem = 'sap-s4hana' | 'sap-ecc' | 'sap-business-one' | 'oracle-erp' | 'oracle-netsuite' | 'oracle-jd-edwards' | 'oracle-peoplesoft' | 'microsoft-dynamics' | 'infor' | 'epicor' | 'sage-x3' | 'sage-intacct' | 'ifs' | 'acumatica' | 'unit4' | 'syspro' | 'workday' | 'deltek-costpoint' | 'guidewire';
export type DatabaseEngine = 'sap-hana' | 'oracle' | 'sql-server' | 'db2' | 'postgresql' | 'mysql' | 'bigquery' | 'sqlite' | 'redshift';
export type SQLDialect = 'hana-sql' | 'oracle-sql' | 'tsql' | 'db2-sql' | 'postgresql' | 'mysql' | 'bigquery-sql' | 'sqlite' | 'redshift-sql';
export interface ERPDatabaseMapping {
    readonly erpSystem: ERPSystem;
    readonly displayName: string;
    readonly primaryEngine: DatabaseEngine | null;
    readonly alternateEngines: readonly DatabaseEngine[];
    readonly apiOnly: boolean;
    readonly sqlDialect: SQLDialect | null;
}
export declare const ERP_DATABASE_MAP: Readonly<Record<ERPSystem, ERPDatabaseMapping>>;
export interface ERPDetectionRule {
    readonly keywords: readonly string[];
    readonly system: ERPSystem;
    readonly weight: number;
}
export declare const ERP_DETECTION_RULES: readonly ERPDetectionRule[];
export declare function resolveERPDatabase(system: ERPSystem): ERPDatabaseMapping;
export declare function isApiOnlyERP(system: ERPSystem): boolean;
export declare function getSQLDialect(system: ERPSystem): SQLDialect | null;
export declare function getPrimaryEngine(system: ERPSystem): DatabaseEngine | null;
export interface ERPDetectionResult {
    readonly system: ERPSystem;
    readonly confidence: number;
    readonly matchedKeyword: string;
}
/**
 * Scan text for ERP system keywords. Returns all matches sorted by
 * confidence (descending). Returns empty array if no ERP detected.
 */
export declare function detectERPFromText(text: string): ERPDetectionResult[];
/**
 * Return all known ERP systems.
 */
export declare function getAllERPSystems(): readonly ERPSystem[];
export interface DatabaseDetectionRule {
    readonly keywords: readonly string[];
    readonly engine: DatabaseEngine;
    readonly dialect: SQLDialect;
    readonly weight: number;
    /** Whether this is a transactional (OLTP) database vs analytics (OLAP/warehouse). */
    readonly category: 'transactional' | 'analytics';
}
export declare const DATABASE_DETECTION_RULES: readonly DatabaseDetectionRule[];
export interface DatabaseDetectionResult {
    readonly engine: DatabaseEngine;
    readonly dialect: SQLDialect;
    readonly confidence: number;
    readonly matchedKeyword: string;
    readonly category: 'transactional' | 'analytics';
}
/**
 * Scan text for explicit database infrastructure keywords.
 * Returns all matches sorted by confidence (descending).
 * This is independent of ERP detection — it catches cases where
 * the user specifies "PostgreSQL" or "BigQuery" directly.
 */
export declare function detectDatabaseFromText(text: string): DatabaseDetectionResult[];
/**
 * From a list of database detection results, pick the best database for
 * transactional schema DDL generation. Transactional databases (PostgreSQL,
 * MySQL, SQL Server, etc.) are preferred over analytics databases (Redshift,
 * BigQuery) since schema DDL targets the primary data store, not the warehouse.
 *
 * Returns null if no transactional database was detected.
 */
export declare function pickTransactionalDatabase(results: DatabaseDetectionResult[]): DatabaseDetectionResult | null;
//# sourceMappingURL=erp-database-map.d.ts.map