/**
 * Phase 2 Pipeline -- Shared Tech Stack Detector (ADR-029 Fix 1)
 *
 * Deterministic (no LLM calls) detection of technology stack from query and
 * dossier text. Produces a canonical TechStack object that flows end-to-end
 * through the pipeline so every stage uses the SAME ERP, cloud, and database
 * details.
 *
 * Primary consumers:
 *   - adr-generator.ts   (writes tech-stack.json, embeds in LLM prompt)
 *   - ruflo-phase-executor.ts (reads tech-stack.json, embeds in wave prompts)
 */
export interface ERPSystem {
    readonly name: string;
    readonly slug: string;
    readonly baseApiPath: string;
    readonly authMethod: string;
    readonly commonResources: string[];
}
export type CloudProvider = 'aws' | 'azure' | 'gcp' | null;
export type DatabaseEngine = 'postgresql' | 'mysql' | 'mongodb' | 'dynamodb' | 'cosmosdb' | 'bigquery' | 'snowflake' | 'sql-server' | null;
export interface TechStack {
    readonly erp: ERPSystem | null;
    readonly cloud: CloudProvider;
    readonly database: DatabaseEngine;
    readonly messageQueue: string | null;
    readonly searchEngine: string | null;
    readonly cacheLayer: string | null;
}
/**
 * ADR-PIPELINE-025 §5a: Extract system/platform name from text using
 * pure string matching — no regex. Handles "Manhattan Active ERP",
 * "Shopify Plus", "Yardi Voyager", or any other system name the user writes.
 */
export declare function extractSystemNameFromText(text: string): string | null;
/**
 * Scan query and dossier text for technology mentions. Returns a deterministic
 * TechStack — no LLM calls, purely regex-based.
 */
export declare function detectTechnologyStack(query: string, dossierText: string): TechStack;
/**
 * Write tech-stack.json to the output directory.
 * Returns the absolute path of the written file.
 */
export declare function writeTechStack(techStack: TechStack, outputDir: string): string;
/**
 * Read tech-stack.json from a directory. Returns null if not found or invalid.
 */
export declare function loadTechStack(dir: string): TechStack | null;
/**
 * Format ERP details into a string suitable for embedding in LLM prompts.
 */
export declare function formatERPContextForPrompt(erp: ERPSystem): string;
/**
 * Format the full tech stack for LLM prompt embedding.
 * Only includes non-null fields.
 */
export declare function formatTechStackForPrompt(ts: TechStack): string;
/** ERP-specific operation paths for code generation templates. */
export interface ERPOperationPaths {
    readonly transferOrder: string;
    readonly purchaseOrder: string;
    readonly inventoryBalance: string;
    readonly itemReceipt: string;
    readonly defaultEntity: string;
    readonly auditLogLabel: string;
    readonly authComment: string;
}
/**
 * Get ERP-specific API operation paths for code generation.
 * Falls back to NetSuite paths for unknown ERP slugs.
 */
export declare function getERPOperationPaths(erpSlug: string | undefined): ERPOperationPaths;
/**
 * Look up an ERPSystem by slug.
 */
export declare function getERPBySlug(slug: string): ERPSystem | null;
//# sourceMappingURL=tech-stack-detector.d.ts.map