import type { ProviderAvailability } from "./AnalysisProvider.js"; import type { JebAnalysisAvailability } from "./jeb/JebAnalysisPort.js"; import type { AvailabilityPolicy } from "./CapabilityInventory.js"; import type { OptionalProviderLoadFailures } from "./OptionalObservationProviders.js"; import type { CommandProviderLaunchFailures } from "./reverse/ReverseEngineeringService.js"; export interface CapabilityAvailabilityFacts { readonly probes?: Partial; readonly observeProviderLoadFailures?: () => OptionalProviderLoadFailures; readonly observeCommandProviderFailures?: () => CommandProviderLaunchFailures; readonly optionalProviderLoadFailures?: | OptionalProviderLoadFailures | undefined; readonly commandProviderFailures?: CommandProviderLaunchFailures | undefined; readonly hostUnsupported?: AvailabilityPolicy["hostUnsupported"]; readonly optionalFeatures?: Pick< AvailabilityPolicy, | "packetCaptureEnabled" | "signalRecordingEnabled" | "wasmArtifactEnabled" | "evmInterfaceEnabled" | "browserObservationEnabled" | "browserScenarioEnabled" | "electronObservationEnabled" | "electronAutomationEnabled" | "v8InspectorObservationEnabled" | "javascriptRecoveryEnabled" | "webModuleResolutionEnabled" | "binaryLayoutEnabled" | "recordedCrashEnabled" | "firmwareInspectionEnabled" | "firmwareExtractionEnabled" >; } /** Provider-owned live probes used by session discovery. */ export interface CapabilityAvailabilityProbes { readonly androidAnalysisAvailability: ( signal: AbortSignal, ) => Promise; readonly adbAnalysisAvailability?: ( signal: AbortSignal, ) => Promise; readonly apktoolAnalysisAvailability?: ( signal: AbortSignal, ) => Promise; readonly jebAnalysisAvailability?: ( signal: AbortSignal, ) => Promise; readonly evmLimiterAvailability?: ( signal: AbortSignal, ) => Promise; }