/**
 * Packaging Module - Convert raw Kubernetes manifests to Helm charts or Kustomize overlays
 *
 * Implements AI-driven packaging as specified in PRD #248.
 * Raw manifests are always generated and validated first, then packaged based on outputFormat.
 */
import { Logger } from './error-handling';
import { DotAI } from './index';
/**
 * Output format types supported by packaging
 */
export type OutputFormat = 'raw' | 'helm' | 'kustomize';
/**
 * File entry in packaging response
 */
export interface PackageFile {
    relativePath: string;
    content: string;
}
/**
 * Result of packaging operation
 */
export interface PackagingResult {
    files: PackageFile[];
    format: OutputFormat;
}
/**
 * Error context for packaging retries
 */
interface PackagingErrorContext {
    attempt: number;
    previousOutput: string;
    validationError: string;
}
/**
 * Question with answer structure
 */
interface QuestionWithAnswer {
    question: string;
    answer?: unknown;
}
/**
 * Solution data structure for packaging
 */
interface SolutionData {
    questions?: {
        required?: QuestionWithAnswer[];
        basic?: QuestionWithAnswer[];
        advanced?: QuestionWithAnswer[];
        open?: {
            answer?: string;
        };
    };
    intent?: string;
    [key: string]: unknown;
}
/**
 * Package raw Kubernetes manifests into Helm chart or Kustomize overlay
 *
 * @param rawManifests - Validated raw Kubernetes YAML manifests
 * @param solution - Solution data with intent, questions, answers
 * @param outputFormat - Target format ('helm' or 'kustomize')
 * @param outputPath - User-specified output path
 * @param dotAI - DotAI instance for AI calls
 * @param logger - Logger instance
 * @param errorContext - Optional error context for retries
 * @param interaction_id - Optional interaction ID for evaluation
 * @returns PackagingResult with files array
 */
export declare function packageManifests(rawManifests: string, solution: SolutionData, outputFormat: OutputFormat, outputPath: string, dotAI: DotAI, logger: Logger, errorContext?: PackagingErrorContext, interaction_id?: string): Promise<PackagingResult>;
export {};
//# sourceMappingURL=packaging.d.ts.map