import type { UnityScanContext } from './scan-context.js'; import { type UnityObjectType } from './yaml-object-graph.js'; export type UnityBindingKind = 'direct' | 'prefab-instance' | 'nested' | 'variant' | 'scene-override'; export interface ResolveInput { repoRoot: string; symbol: string; scanContext?: UnityScanContext; resourcePathAllowlist?: string[]; deepParseLargeResources?: boolean; } export interface UnityScalarField { name: string; value: string; valueType?: string; sourceLayer: string; } export interface UnityReferenceField { name: string; fileId?: string; guid?: string; resolvedAssetPath?: string; sourceLayer: string; } export interface UnitySerializedFields { scalarFields: UnityScalarField[]; referenceFields: UnityReferenceField[]; } export type UnityReferenceResolution = 'null' | 'local-object' | 'external-asset' | 'unresolved'; export interface UnityResolvedReferenceTarget { resourcePath?: string; objectId?: string; objectType?: UnityObjectType | string; gameObjectName?: string; assetPath?: string; } export interface UnityResolvedReference { fieldName: string; sourceLayer: string; fileId?: string; guid?: string; fromList: boolean; listIndex?: number; resolution: UnityReferenceResolution; target?: UnityResolvedReferenceTarget; } export interface UnityBindingEvidence { line: number; lineText: string; } export interface UnityAssetRefPathReference { parentFieldName: string; fieldName: string; relativePath: string; sourceLayer: string; isEmpty: boolean; isSprite: boolean; } export interface ResolvedUnityBinding { resourcePath: string; resourceType: 'prefab' | 'scene' | 'asset'; bindingKind: UnityBindingKind; componentObjectId: string; lightweight?: boolean; evidence: UnityBindingEvidence; serializedFields: UnitySerializedFields; resolvedReferences: UnityResolvedReference[]; assetRefPaths?: UnityAssetRefPathReference[]; } export interface ResolveOutput { symbol: string; scriptPath: string; scriptGuid: string; resourceBindings: ResolvedUnityBinding[]; serializedFields: UnitySerializedFields; unityDiagnostics: string[]; } export declare function resolveUnityBindings(input: ResolveInput): Promise; export declare function hasCoverage(resultSet: ResolveOutput[]): { hasScalar: boolean; hasReference: boolean; }; export declare function extractAssetRefPathReferences(serializedFields: UnitySerializedFields): UnityAssetRefPathReference[];