import type { RunMatFilesystemProvider } from "../fs/provider-types.js"; import type { GitAcquisitionIntent, GitAcquisitionPlan, GitAcquisitionPolicy, GitSnapshotWire, ServerGitGatewayOptions } from "./git-gateway.js"; import type { ServerProjectAcquisitionPlan, ServerProjectSnapshotOptions } from "./server-project.js"; import type { BrowserRegistryOptions, RegistryAcquisitionPlan, RegistryCandidatePlan } from "./registry.js"; import { BrowserPackageMountFilesystem } from "./mount.js"; import type { RunMatPackageCacheProvider } from "./provider-types.js"; import type { PackageCacheLease } from "./provider-types.js"; export interface BrowserProjectResolveOptions { target: string; default_server_origin: string; default_registry_index: string; groups: Array<"runtime" | "development" | "test">; root_features: string[]; host_capabilities: string[]; source_intent: GitAcquisitionIntent; source_policy: GitAcquisitionPolicy; } export interface BrowserProjectResolveRequest { manifestPath: string; existingLock?: unknown; options: BrowserProjectResolveOptions; } export interface BrowserResolvedProject { frozen: unknown; lock: unknown; lock_decision: "use-existing" | "write-generated"; acquired_git_sources: unknown[]; acquired_server_sources: unknown[]; acquired_registry_sources: unknown[]; source_inventories: unknown[]; } interface BrowserResolveWireResult extends BrowserResolvedProject { cache_lease?: PackageCacheLease | null; } export interface BrowserProjectResolverNative { resolveProject(request: BrowserProjectResolveRequest, provider: { packageCache: RunMatPackageCacheProvider; leaseOwner: string; fetchGitInventory(plan: GitAcquisitionPlan): Promise; fetchServerSnapshot(plan: ServerProjectAcquisitionPlan): Promise; fetchRegistryCandidates(plan: RegistryCandidatePlan): Promise; fetchRegistryRelease(plan: RegistryAcquisitionPlan): Promise; mountPackageSnapshot(snapshot: GitSnapshotWire): string; mountPrivatePackageSnapshot(snapshot: GitSnapshotWire): string; }, filesystem: RunMatFilesystemProvider): Promise; packageCacheRenewLease(provider: RunMatPackageCacheProvider, lease: PackageCacheLease, ttlMs: bigint): Promise; packageCacheReleaseLease(provider: RunMatPackageCacheProvider, lease: PackageCacheLease): Promise; } export interface BrowserProjectResolverConfig { native: BrowserProjectResolverNative; filesystem: RunMatFilesystemProvider; packageCache: RunMatPackageCacheProvider; gitGateway: ServerGitGatewayOptions; serverSnapshots?: ServerProjectSnapshotOptions; registry?: BrowserRegistryOptions; } /** * Browser composition root for the portable Rust package resolver. * * JavaScript supplies storage, authenticated transport, and immutable mount mechanics; * selector/lock/network policy, snapshot verification, CAS publication, graph building, * and lock reconciliation remain in Rust. */ export declare class BrowserProjectResolver { private readonly config; readonly filesystem: BrowserPackageMountFilesystem; private readonly leaseOwner; private cacheLease; private renewalTimer; private renewalInFlight; private resolving; private disposed; private leaseFailure; private readonly unsubscribePrivateArtifactInvalidation; constructor(config: BrowserProjectResolverConfig); resolve(request: BrowserProjectResolveRequest): Promise; get cacheLeaseError(): unknown; dispose(): Promise; private startRenewal; private renewLease; } export {}; //# sourceMappingURL=browser-resolver.d.ts.map