/**
 * wrap-shim-generator.ts
 *
 * For each DetectedAgent from the scanner (slice 1), generates a sibling
 * `<file>.governed.<ext>` shim file that:
 *   - Imports the original module
 *   - Wraps the LLM client using the appropriate Connexum governed equivalent
 *   - Re-exports the original module's public API with the wrapped client
 *   - Includes a stable agentId header for idempotent re-runs
 *
 * Pure function: generateWrapShim() returns string content only (no disk writes).
 * writeWrapShims() is the disk-writing orchestrator called by the CLI.
 *
 * F-NEW-PRODUCT-AGENT-DIR-WRAPPER slice 2
 * @connexum/ai-governance
 */
import type { DetectedAgent } from './agent-dir-scanner';
/**
 * Maps (language, provider, framework) to a template key.
 * Returns null when no template exists for the combo (caller skips + logs).
 */
export declare function templateKey(language: 'python' | 'typescript' | 'javascript', provider: string | null, framework: string | null): string | null;
/** Result of a single shim generation attempt. */
export interface ShimResult {
    /** Absolute path where the shim should be written. */
    shimPath: string;
    /** Generated file content (empty string if skipped). */
    content: string;
    /** 'generated' | 'skipped-exists' | 'skipped-no-template' */
    status: 'generated' | 'skipped-exists' | 'skipped-no-template';
    /** Human-readable message for CLI output. */
    message: string;
}
/**
 * Pure function. Returns the shim file content for a single DetectedAgent.
 * Does not write to disk.
 *
 * @param agent   The DetectedAgent from the scanner.
 * @param agentDir Absolute path to the scanned agent directory.
 * @returns       The generated shim file content as a string.
 * @throws        Error if the template file cannot be read.
 */
export declare function generateWrapShim(agent: DetectedAgent, agentDir: string): string;
/**
 * Derive the output shim path for an agent.
 * `agents/bot.py` => `agents/bot.governed.py`
 * `agents/bot.ts`  => `agents/bot.governed.ts`
 */
export declare function shimPathFor(agent: DetectedAgent, agentDir: string): string;
/** Marker string present in all auto-generated shims. Used for don't-clobber check. */
export declare const SHIM_MARKER = "# auto-generated by @connexum/ai-governance";
export declare const SHIM_MARKER_TS = "// auto-generated by @connexum/ai-governance";
/**
 * Write shim files for all detected agents into the agent directory.
 * - Skips files that already exist AND were previously auto-generated (idempotent).
 * - Skips files that already exist but were manually edited (don't-clobber).
 * - Logs a warning for providers without a template (no crash).
 *
 * @param agents    Array from scanAgentDirectory().
 * @param agentDir  Absolute path to the agent directory.
 * @param log       Optional log function (defaults to process.stdout.write).
 * @returns         Array of ShimResult, one per agent.
 */
export declare function writeWrapShims(agents: DetectedAgent[], agentDir: string, log?: (msg: string) => void): ShimResult[];
//# sourceMappingURL=wrap-shim-generator.d.ts.map