export type OpenApiVersion = '3.2' | '3.1' | '3.0' | '2.0'; export class VersionDetector { detectVersion(data: any): OpenApiVersion | null { if (typeof data?.openapi === 'string') { const version = data.openapi; if (version.startsWith('3.2')) return '3.2'; if (version.startsWith('3.1')) return '3.1'; if (version.startsWith('3.0')) return '3.0'; } if (data?.swagger === '2.0') return '2.0'; return null; } isOpenApi3(version: OpenApiVersion | null): boolean { return version === '3.0' || version === '3.1' || version === '3.2'; } isOpenApi2(version: OpenApiVersion | null): boolean { return version === '2.0'; } getDefaultVersion(): OpenApiVersion { return '3.2'; // Default to latest stable version } getSupportedVersions(): OpenApiVersion[] { return ['3.2', '3.1', '3.0', '2.0']; } }