import type { FrontierSourceLanguage } from '@shapeshift-labs/frontier-lang-kernel'; import type { FrontierCompileTarget } from './compile.js'; import type { NativeImportLanguageProfile } from './native-import-losses.js'; import type { LanguageAdapterPackageContract } from './language-adapter-package-contracts.js'; export type UniversalLanguageCoverageSurfaceId = | 'parserSourceSpanTrivia' | 'scopeUseDefGraph' | 'moduleExportImportGraph' | 'typePublicApiGraph' | 'controlFlowEffectGraph' | 'semanticEditAdmission' | 'targetLowering' | 'roundtripProjection' | 'runtimeProof' | 'packageBuildGraph' | 'crossLanguageConversion' | string; export type UniversalLanguageCoverageStatus = | 'high' | 'bounded-evidence' | 'partial' | 'adapter-only' | 'planned' | 'missing' | 'blocked' | string; export type UniversalLanguageCoverageReadinessStatus = | 'high' | 'bounded-evidence' | 'partial' | 'planned' | 'blocked' | string; export type UniversalLanguageCoverageRowKind = | 'language' | 'dialect' | 'artifact' | 'runtime-surface' | string; export interface UniversalLanguageCoverageApplicableSurface { readonly surface: UniversalLanguageCoverageSurfaceId; readonly applies: true; readonly status: UniversalLanguageCoverageStatus; readonly estimate?: number; readonly evidence: readonly string[]; readonly blockers: readonly string[]; readonly notes: readonly string[]; } export interface UniversalLanguageCoverageNonApplicableSurface { readonly surface: UniversalLanguageCoverageSurfaceId; readonly applies: false; readonly evidence: readonly string[]; readonly blockers: readonly string[]; readonly notes: readonly string[]; } export type UniversalLanguageCoverageSurface = UniversalLanguageCoverageApplicableSurface | UniversalLanguageCoverageNonApplicableSurface; export type UniversalLanguageCoverageSurfaceOverride = UniversalLanguageCoverageStatus | 'not-applicable' | Partial & { readonly status?: UniversalLanguageCoverageStatus | 'not-applicable' }; export interface UniversalLanguageCoveragePackageEvidence { readonly status: | 'target-projection' | 'dependency-only' | 'platform-importer' | 'planned-platform' | 'missing-package' | string; readonly packageNames: readonly string[]; readonly packageVersions: readonly string[]; readonly packageClasses: readonly string[]; readonly releaseReady: boolean; readonly releaseReadyCount: number; readonly plannedOnly: boolean; readonly hostEvidenceRequired: boolean; readonly targetProjectionSupported: boolean; readonly targetProjectionTargets: readonly (FrontierCompileTarget | string)[]; readonly requiredEvidenceKeys: readonly string[]; readonly promotion: { readonly status: | 'satisfied' | 'needs-package-evidence' | 'needs-package-contract' | 'host-evidence-required' | 'source-importer-only' | string; readonly fromStatus: string; readonly targetStatuses: readonly string[]; readonly requiredEvidenceKeys: readonly string[]; readonly missingEvidenceKeys: readonly string[]; readonly blockers: readonly string[]; readonly nextActions: readonly string[]; }; readonly notes: readonly string[]; } export interface UniversalLanguageCoverageRow { readonly kind: 'frontier.lang.universalLanguageCoverageRow'; readonly version: 1; readonly id: string; readonly language: FrontierSourceLanguage | string; readonly rowKind: UniversalLanguageCoverageRowKind; readonly aliases: readonly string[]; readonly extensions: readonly string[]; readonly readiness: UniversalLanguageCoverageReadinessStatus; readonly completionEstimate: number; readonly surfaces: readonly UniversalLanguageCoverageSurface[]; readonly surfaceStatusCounts: Readonly>; readonly package: UniversalLanguageCoveragePackageEvidence; readonly target: { readonly compileTarget?: FrontierCompileTarget | string; readonly lowerable: boolean; readonly targetProjectionSupported: boolean; }; readonly evidence: { readonly parserAdapters: readonly string[]; readonly knownLossKinds: readonly string[]; readonly production?: unknown; readonly profileDefaultReadiness?: string; readonly source: string; }; readonly remainingWork: readonly string[]; readonly notes: readonly string[]; } export interface UniversalLanguageCoverageMatrixSummary { readonly rows: number; readonly languages: readonly string[]; readonly rowKinds: Readonly>; readonly byReadiness: Readonly>; readonly byPackageStatus: Readonly>; readonly bySurfaceStatus: Readonly>; readonly averageCompletionEstimate: number; readonly highRows: number; readonly boundedEvidenceRows: number; readonly partialRows: number; readonly plannedRows: number; readonly blockedRows: number; readonly missingSurfaceCells: number; readonly blockedSurfaceCells: number; readonly applicableSurfaceCells: number; readonly nonApplicableSurfaceCells: number; readonly packages: readonly string[]; readonly targetProjectionRows: number; readonly remainingWorkItems: number; } export interface UniversalLanguageCoverageMatrix { readonly kind: 'frontier.lang.universalLanguageCoverageMatrix'; readonly version: 1; readonly generatedAt: number; readonly surfaces: readonly UniversalLanguageCoverageSurfaceId[]; readonly languages: readonly UniversalLanguageCoverageRow[]; readonly summary: UniversalLanguageCoverageMatrixSummary; readonly metadata: { readonly languageDenominator: readonly string[]; readonly statusVocabulary: readonly UniversalLanguageCoverageStatus[]; readonly readinessVocabulary: readonly UniversalLanguageCoverageReadinessStatus[]; readonly note: string; }; } export interface UniversalLanguageCoverageMatrixOptions { readonly generatedAt?: number; readonly languages?: readonly (NativeImportLanguageProfile | FrontierSourceLanguage | string)[]; readonly languageDenominator?: readonly (FrontierSourceLanguage | string)[]; readonly requiredLanguages?: readonly (FrontierSourceLanguage | string)[]; readonly includeDefaultSemanticSurfaces?: boolean; readonly packageContracts?: readonly LanguageAdapterPackageContract[]; readonly surfaceOverrides?: Readonly>>>; readonly rowOverrides?: Readonly>>>; readonly productionEvidence?: Readonly>; } type UniversalLanguageCoverageQueryFilter = T | readonly T[]; export interface UniversalLanguageCoverageMatrixQuery { readonly id?: UniversalLanguageCoverageQueryFilter; readonly language?: UniversalLanguageCoverageQueryFilter; readonly rowKind?: UniversalLanguageCoverageQueryFilter; readonly readiness?: UniversalLanguageCoverageQueryFilter; readonly packageStatus?: UniversalLanguageCoverageQueryFilter; readonly packageName?: UniversalLanguageCoverageQueryFilter; readonly surface?: UniversalLanguageCoverageQueryFilter; readonly surfaceStatus?: UniversalLanguageCoverageQueryFilter; readonly missingSurface?: UniversalLanguageCoverageQueryFilter; readonly blockedSurface?: UniversalLanguageCoverageQueryFilter; readonly surfaceApplies?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionStatus?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionFromStatus?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionTargetStatus?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionRequiredEvidence?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionMissingEvidence?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionBlocker?: UniversalLanguageCoverageQueryFilter; readonly packagePromotionNextAction?: UniversalLanguageCoverageQueryFilter; readonly minCompletionEstimate?: number; readonly maxCompletionEstimate?: number; } export interface UniversalLanguageCoverageMatrixQueryResult { readonly kind: 'frontier.lang.universalLanguageCoverageQuery'; readonly version: 1; readonly found: boolean; readonly rows: readonly UniversalLanguageCoverageRow[]; readonly bestRow?: UniversalLanguageCoverageRow; readonly summary: UniversalLanguageCoverageMatrixSummary; readonly reasons: readonly string[]; } export declare const UniversalLanguageCoverageSurfaceIds: readonly UniversalLanguageCoverageSurfaceId[]; export declare const UniversalLanguageCoverageStatuses: readonly UniversalLanguageCoverageStatus[]; export declare const UniversalLanguageCoverageReadinessStatuses: readonly UniversalLanguageCoverageReadinessStatus[]; export declare function createUniversalLanguageCoverageMatrix( options?: UniversalLanguageCoverageMatrixOptions ): UniversalLanguageCoverageMatrix; export declare function queryUniversalLanguageCoverageMatrix( matrixOrOptions?: UniversalLanguageCoverageMatrix | UniversalLanguageCoverageMatrixOptions, query?: UniversalLanguageCoverageMatrixQuery ): UniversalLanguageCoverageMatrixQueryResult;