import type { FrontierSourceLanguage, SourceSpan } from '@shapeshift-labs/frontier-lang-kernel'; export type SemanticResourceGraphRecordKind = | 'resource' | 'owner' | 'loan' | 'alias' | 'move' | 'drop' | 'escape' | 'coroutine-scope' | 'green-thread' | 'lifetime-region' | 'lifetime-relation' | 'borrow-scope' | 'unsafe-boundary' | 'memory-region' | 'data-layout' | 'pointer-edge' | 'memory-access' | 'abi-boundary' | 'synchronization-edge' | 'trap' | 'undefined-behavior' | 'conflict' | 'proof-obligation'; export type SemanticResourceLoanMode = | 'shared' | 'mutable' | 'exclusive' | 'move' | 'raw' | 'unknown'; export type SemanticResourceGraphStatus = 'partial' | 'missing' | 'blocked'; export interface SemanticResourceGraphBaseRecord { readonly recordKind: SemanticResourceGraphRecordKind; readonly id: string; readonly sourcePath?: string; readonly sourceHash?: string; readonly sourceSpan?: SourceSpan; readonly evidenceIds: readonly string[]; readonly metadata?: Record; } export interface SemanticResourceRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'resource'; readonly name?: string; readonly resourceKind: string; readonly ownerId?: string; readonly ownerName?: string; } export interface SemanticResourceOwnerRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'owner'; readonly name?: string; readonly ownerKind: string; } export interface SemanticResourceLifetimeRegionRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'lifetime-region'; readonly name?: string; readonly lifetimeKind: string; readonly startLine?: number; readonly endLine?: number; } export interface SemanticResourceLoanRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'loan'; readonly resourceId?: string; readonly ownerId?: string; readonly lifetimeRegionId?: string; readonly mode: SemanticResourceLoanMode; readonly access?: string; } export interface SemanticResourceAliasRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'alias'; readonly resourceId?: string; readonly ownerId?: string; readonly aliasId?: string; readonly aliasKind: string; } export interface SemanticResourceMoveRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'move'; readonly resourceId?: string; readonly fromOwnerId?: string; readonly toOwnerId?: string; readonly moveKind?: string; } export interface SemanticResourceDropRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'drop'; readonly resourceId?: string; readonly ownerId?: string; readonly lifetimeRegionId?: string; readonly dropKind: string; readonly line?: number; readonly order?: number; } export interface SemanticResourceEscapeRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'escape'; readonly resourceId?: string; readonly ownerId?: string; readonly lifetimeRegionId?: string; readonly loanId?: string; readonly escapeKind: string; readonly status: string; } export interface SemanticResourceCoroutineScopeRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'coroutine-scope'; readonly scopeKind: string; readonly runtimeId?: string; readonly schedulerId?: string; readonly parentScopeId?: string; readonly ownerId?: string; readonly resourceId?: string; readonly taskIds?: readonly string[]; readonly awaitBoundaryIds?: readonly string[]; readonly cancellationKind?: string; readonly structuredConcurrency?: true; readonly proofStatus?: string; readonly status?: string; readonly reasonCode?: string; } export interface SemanticResourceGreenThreadRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'green-thread'; readonly threadKind: string; readonly runtimeId?: string; readonly schedulerId?: string; readonly coroutineScopeId?: string; readonly ownerId?: string; readonly resourceId?: string; readonly stackKind?: string; readonly preemptionKind?: string; readonly yieldPointIds?: readonly string[]; readonly proofStatus?: string; readonly status?: string; readonly reasonCode?: string; } export interface SemanticResourceLifetimeRelationRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'lifetime-relation'; readonly relationKind: string; readonly fromLifetimeId?: string; readonly toLifetimeId?: string; readonly from?: string; readonly to?: string; } export interface SemanticResourceBorrowScopeRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'borrow-scope'; readonly scopeKind: string; readonly constraintKind?: string; readonly constraintKinds: readonly string[]; readonly ownershipKind?: string; readonly lifetimeKind?: string; readonly controlFlowKind?: string; readonly sourceControlFlowId?: string; readonly lifetimeRegionId?: string; readonly resourceId?: string; } export interface SemanticResourceUnsafeBoundaryRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'unsafe-boundary'; readonly resourceId?: string; readonly unsafeBoundary: true; readonly proofStatus: string; } export interface SemanticResourceConflictRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'conflict'; readonly resourceId?: string; readonly ownerId?: string; readonly loanId?: string; readonly aliasId?: string; readonly unsafeBoundaryId?: string; readonly reasonCode?: string; readonly message?: string; readonly status: string; readonly severity: string; } export interface SemanticResourceProofObligationRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'proof-obligation'; readonly resourceId?: string; readonly conflictId?: string; readonly kind?: string; readonly status: string; readonly statement?: string; } export interface SemanticResourceLowLevelRecord extends SemanticResourceGraphBaseRecord { readonly recordKind: 'memory-region' | 'data-layout' | 'pointer-edge' | 'memory-access' | 'abi-boundary' | 'synchronization-edge' | 'trap' | 'undefined-behavior'; readonly resourceId?: string; readonly targetResourceId?: string; readonly typeId?: string; readonly structId?: string; readonly fieldId?: string; readonly callableId?: string; readonly functionId?: string; readonly ownerId?: string; readonly loanId?: string; readonly pointerEdgeId?: string; readonly memoryAccessId?: string; readonly unsafeBoundaryId?: string; readonly fromMemoryAccessId?: string; readonly toMemoryAccessId?: string; readonly memoryKind?: string; readonly regionKind?: string; readonly layoutKind?: string; readonly pointerKind?: string; readonly accessKind?: string; readonly boundaryKind?: string; readonly synchronizationKind?: string; readonly edgeKind?: string; readonly fenceKind?: string; readonly trapKind?: string; readonly undefinedBehaviorKind?: string; readonly addressSpace?: string; readonly address?: string; readonly endian?: string; readonly repr?: string; readonly abi?: string; readonly callingConvention?: string; readonly memoryOrder?: string; readonly operationKind?: string; readonly instructionId?: string; readonly trapCode?: string; readonly reasonCode?: string; readonly condition?: string; readonly status?: string; readonly severity?: string; readonly message?: string; readonly language?: string; readonly memoryScope?: string; readonly lockId?: string; readonly synchronizationKey?: string; readonly channelId?: string; readonly actorId?: string; readonly sizeBytes?: number; readonly alignmentBytes?: number; readonly offsetBytes?: number; readonly bitWidth?: number; readonly pointerWidth?: number; readonly fieldOrder?: readonly string[]; readonly reads?: readonly string[]; readonly writes?: readonly string[]; readonly atomic?: true; readonly volatile?: true; readonly shared?: true; readonly nullable?: true; readonly mutable?: true; readonly proofStatus?: string; readonly failClosed?: true; readonly semanticEquivalenceClaim?: false; readonly runtimeEquivalenceClaim?: false; } export type SemanticResourceGraphRecord = | SemanticResourceRecord | SemanticResourceOwnerRecord | SemanticResourceLoanRecord | SemanticResourceAliasRecord | SemanticResourceMoveRecord | SemanticResourceDropRecord | SemanticResourceEscapeRecord | SemanticResourceCoroutineScopeRecord | SemanticResourceGreenThreadRecord | SemanticResourceLifetimeRegionRecord | SemanticResourceLifetimeRelationRecord | SemanticResourceBorrowScopeRecord | SemanticResourceUnsafeBoundaryRecord | SemanticResourceLowLevelRecord | SemanticResourceConflictRecord | SemanticResourceProofObligationRecord; export interface SemanticResourceGraphSummary { readonly records: number; readonly resources: number; readonly owners: number; readonly loans: number; readonly aliases: number; readonly moves: number; readonly drops: number; readonly escapes: number; readonly coroutineScopes: number; readonly greenThreads: number; readonly lifetimeRegions: number; readonly lifetimeRelations: number; readonly borrowScopes: number; readonly unsafeBoundaries: number; readonly memoryRegions: number; readonly dataLayouts: number; readonly pointerEdges: number; readonly memoryAccesses: number; readonly abiBoundaries: number; readonly synchronizationEdges: number; readonly traps: number; readonly undefinedBehaviors: number; readonly runtimeConcurrencyPrimitives: number; readonly lowLevelPrimitives: number; readonly conflicts: number; readonly proofObligations: number; readonly unsafeBoundariesWithoutProof: number; readonly synchronizationEdgesWithoutProof: number; readonly failClosedTraps: number; readonly trapsWithoutProof: number; readonly undefinedBehaviorsWithoutProof: number; readonly reasonCodes: readonly string[]; } export interface SemanticResourceGraph { readonly kind: 'frontier.lang.semanticResourceGraph'; readonly version: 1; readonly id: string; readonly sourceLanguage?: FrontierSourceLanguage | string; readonly sourcePath?: string; readonly sourceHash?: string; readonly status: SemanticResourceGraphStatus; readonly resources: readonly SemanticResourceRecord[]; readonly owners: readonly SemanticResourceOwnerRecord[]; readonly loans: readonly SemanticResourceLoanRecord[]; readonly aliases: readonly SemanticResourceAliasRecord[]; readonly moves: readonly SemanticResourceMoveRecord[]; readonly drops: readonly SemanticResourceDropRecord[]; readonly escapes: readonly SemanticResourceEscapeRecord[]; readonly coroutineScopes: readonly SemanticResourceCoroutineScopeRecord[]; readonly greenThreads: readonly SemanticResourceGreenThreadRecord[]; readonly lifetimeRegions: readonly SemanticResourceLifetimeRegionRecord[]; readonly lifetimeRelations: readonly SemanticResourceLifetimeRelationRecord[]; readonly outlives: readonly SemanticResourceLifetimeRelationRecord[]; readonly borrowScopes: readonly SemanticResourceBorrowScopeRecord[]; readonly borrowScopeRegions: readonly SemanticResourceBorrowScopeRecord[]; readonly unsafeBoundaries: readonly SemanticResourceUnsafeBoundaryRecord[]; readonly memoryRegions: readonly SemanticResourceLowLevelRecord[]; readonly dataLayouts: readonly SemanticResourceLowLevelRecord[]; readonly pointerEdges: readonly SemanticResourceLowLevelRecord[]; readonly memoryAccesses: readonly SemanticResourceLowLevelRecord[]; readonly abiBoundaries: readonly SemanticResourceLowLevelRecord[]; readonly synchronizationEdges: readonly SemanticResourceLowLevelRecord[]; readonly traps: readonly SemanticResourceLowLevelRecord[]; readonly undefinedBehaviors: readonly SemanticResourceLowLevelRecord[]; readonly conflicts: readonly SemanticResourceConflictRecord[]; readonly proofObligations: readonly SemanticResourceProofObligationRecord[]; readonly evidenceIds: readonly string[]; readonly summary: SemanticResourceGraphSummary; readonly query: { readonly resourceIds: readonly string[]; readonly ownerIds: readonly string[]; readonly coroutineScopeIds: readonly string[]; readonly greenThreadIds: readonly string[]; readonly lifetimeRegionIds: readonly string[]; readonly synchronizationEdgeIds: readonly string[]; readonly trapIds: readonly string[]; readonly undefinedBehaviorIds: readonly string[]; readonly failClosedTrapIds: readonly string[]; readonly lowLevelPrimitiveIds: readonly string[]; readonly sourcePaths: readonly string[]; readonly evidenceIds: readonly string[]; readonly blockerReasonCodes: readonly string[]; }; readonly claims: { readonly borrowCheckerClaim: false; readonly aliasSafetyClaim: false; readonly lifetimeSoundnessClaim: false; readonly semanticEquivalenceClaim: false; readonly autoMergeClaim: false; }; readonly metadata?: Record; } export interface SemanticResourceGraphInput { readonly id?: string; readonly language?: FrontierSourceLanguage | string; readonly sourceLanguage?: FrontierSourceLanguage | string; readonly sourcePath?: string; readonly sourceHash?: string; readonly resources?: readonly Partial[]; readonly owners?: readonly Partial[]; readonly loans?: readonly Partial[]; readonly aliases?: readonly Partial[]; readonly moves?: readonly Partial[]; readonly drops?: readonly Partial[]; readonly escapes?: readonly Partial[]; readonly coroutineScopes?: readonly Partial[]; readonly greenThreads?: readonly Partial[]; readonly lifetimeRegions?: readonly Partial[]; readonly lifetimeRelations?: readonly Partial[]; readonly outlives?: readonly Partial[]; readonly borrowScopes?: readonly Partial[]; readonly borrowScopeRegions?: readonly Partial[]; readonly unsafeBoundaries?: readonly Partial[]; readonly memoryRegions?: readonly Partial[]; readonly dataLayouts?: readonly Partial[]; readonly pointerEdges?: readonly Partial[]; readonly memoryAccesses?: readonly Partial[]; readonly abiBoundaries?: readonly Partial[]; readonly synchronizationEdges?: readonly Partial[]; readonly traps?: readonly Partial[]; readonly undefinedBehaviors?: readonly Partial[]; readonly conflicts?: readonly Partial[]; readonly proofObligations?: readonly Partial[]; readonly resourceGraph?: Partial; readonly semanticResourceGraph?: Partial; readonly resourceGraphs?: readonly Partial[]; readonly graphs?: readonly Partial[]; readonly imports?: readonly Record[]; readonly ownershipRegions?: readonly Record[]; readonly paradigmSemantics?: Record; readonly evidence?: readonly { readonly id?: string }[]; readonly evidenceIds?: readonly string[]; readonly metadata?: Record; } export interface SemanticResourceGraphQuery { readonly kind?: SemanticResourceGraphRecordKind | readonly SemanticResourceGraphRecordKind[]; readonly resourceId?: string | readonly string[]; readonly ownerId?: string | readonly string[]; readonly lifetimeRegionId?: string | readonly string[]; readonly lifetimeRelationKind?: string | readonly string[]; readonly fromLifetimeId?: string | readonly string[]; readonly toLifetimeId?: string | readonly string[]; readonly borrowScopeKind?: string | readonly string[]; readonly borrowScopeConstraintKind?: string | readonly string[]; readonly escapeKind?: string | readonly string[]; readonly reasonCode?: string | readonly string[]; readonly sourcePath?: string | readonly string[]; readonly status?: string | readonly string[]; readonly evidenceId?: string | readonly string[]; readonly unsafe?: boolean; } export declare const SemanticResourceGraphRecordKinds: readonly SemanticResourceGraphRecordKind[]; export declare const SemanticResourceLoanModes: readonly SemanticResourceLoanMode[]; export declare function createSemanticResourceGraph(input?: SemanticResourceGraphInput): SemanticResourceGraph; export declare function summarizeSemanticResourceGraph(graph?: Partial): SemanticResourceGraphSummary; export declare function querySemanticResourceGraph( graph?: Partial, query?: SemanticResourceGraphQuery ): readonly SemanticResourceGraphRecord[];