/**
 * SDK Generation Module
 *
 * This module provides functionality for generating client SDKs from OpenAPI specifications.
 * It supports multiple languages using both native generators and OpenAPI Generator.
 */
/**
 * Supported SDK languages
 */
export type SDKLanguage = 'typescript' | 'python' | 'go' | 'java' | 'csharp' | 'ruby' | 'php' | 'swift' | 'kotlin' | 'rust';
/**
 * SDK configuration file (sdk.json)
 */
export interface SDKConfig {
    openapi: string;
    packageName: string;
    output: string;
    languages: {
        [key in SDKLanguage]?: LanguageConfig;
    };
}
/**
 * Language-specific configuration
 */
export interface LanguageConfig {
    enabled: boolean;
    packageName?: string;
    output?: string;
    additionalOptions?: Record<string, string>;
}
/**
 * Generator information
 */
export interface GeneratorInfo {
    language: SDKLanguage;
    displayName: string;
    native: boolean;
    requiresJava: boolean;
    generatorName?: string;
}
/**
 * SDK generation result for a single language
 */
export interface SDKGenerationResult {
    language: SDKLanguage;
    success: boolean;
    outputPath: string;
    error?: string;
    duration: number;
}
/**
 * Overall SDK generation result
 */
export interface GenerateSDKsResult {
    results: SDKGenerationResult[];
    successCount: number;
    failureCount: number;
    totalDuration: number;
}
/**
 * Validation result
 */
export interface ValidationResult {
    valid: boolean;
    errors: string[];
    warnings: string[];
}
/**
 * Options for SDK generation
 */
export interface GenerateOptions {
    language?: SDKLanguage;
    preview?: boolean;
    outputDir?: string;
}
/**
 * Options for SDK config initialization
 */
export interface InitConfigOptions {
    openapi: string;
    packageName: string;
    languages: SDKLanguage[];
    force?: boolean;
}
/**
 * All supported languages
 */
export declare const SUPPORTED_LANGUAGES: SDKLanguage[];
/**
 * Load SDK configuration from project directory
 */
export declare function loadSDKConfig(projectRoot: string): Promise<{
    config: SDKConfig | null;
    error?: string;
}>;
/**
 * Initialize SDK configuration
 */
export declare function initSDKConfig(projectRoot: string, options: InitConfigOptions): Promise<{
    configPath: string;
    config: SDKConfig;
}>;
/**
 * Get enabled generators from config
 */
export declare function getEnabledGenerators(config: SDKConfig): SDKLanguage[];
/**
 * Get generator information for all languages
 */
export declare function getGeneratorInfo(): GeneratorInfo[];
/**
 * Check if a generator is native (doesn't require Java)
 */
export declare function isNativeGenerator(language: SDKLanguage): boolean;
/**
 * Resolve OpenAPI spec path relative to project root
 */
export declare function resolveSpecPath(projectRoot: string, specPath: string): string;
/**
 * Validate an OpenAPI specification
 */
export declare function validateSpec(specPath: string): Promise<ValidationResult>;
/**
 * Generate SDKs for configured languages
 */
export declare function generateSDKs(projectRoot: string, options?: GenerateOptions): Promise<GenerateSDKsResult>;
