import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import type { ExtensionRef, Handle, ExtensionName, ExtensionType, SourceAuthorityBlockedFact } from "../extensions/index.js"; import type { ResolvedPackDependencyMap } from "./resolved-dependency.js"; import type { SourceHostProvidersService } from "../source-resolution/index.js"; import type { RegistrySource } from "../sources/index.js"; import { type AppError } from "../app-error/index.js"; import type { PackRef } from "./refs.js"; import type * as Duration from "effect/Duration"; import type { VersionRange } from "../version-constraints/version-constraints.js"; import type { ReleaseAgeBypassRecord, ReleaseAgeEvaluation, ReleaseAgeHoldbackRecord } from "../registry/index.js"; /** Every extension type a pack can depend on — packs cannot nest. */ type SupportedPackDependencyType = Exclude; export type WorkspacePackDependencyResolution = { readonly kind: "absent"; } | { readonly kind: "selected"; readonly ref: ExtensionRef; } | { readonly kind: "blocked"; readonly fact: SourceAuthorityBlockedFact; }; export type WorkspacePackDependencyResolver = (args: { readonly owner: Handle; readonly type: SupportedPackDependencyType; readonly name: ExtensionName; readonly constraint: VersionRange; readonly root: string; }) => Effect.Effect; /** Resolve a Pack member from an already-authorized immutable candidate. */ export type PackDependencyRefResolver = (args: { readonly owner: Handle; readonly type: SupportedPackDependencyType; readonly name: ExtensionName; readonly constraint: VersionRange; readonly root: string; }) => Effect.Effect; export interface ResolvedPackDependencies { readonly resolvedSkills: ResolvedPackDependencyMap; readonly resolvedMcpServers: ResolvedPackDependencyMap; readonly resolvedSubagents: ResolvedPackDependencyMap; readonly resolvedRules: ResolvedPackDependencyMap; readonly resolvedHooks: ResolvedPackDependencyMap; readonly resolvedKnowledge: ResolvedPackDependencyMap; readonly dependencyRefs: ReadonlyArray; } export type ReleaseAgeAwarePackDependencyResolution = { readonly kind: "selected"; readonly dependencies: ResolvedPackDependencies; readonly holdbacks: ReadonlyArray; readonly bypasses: ReadonlyArray; } | { readonly kind: "policy_held"; readonly holdbacks: ReadonlyArray; readonly bypasses: ReadonlyArray; }; export declare const resolvePackDependencies: (pack: PackRef, sources: SourceHostProvidersService, minimumReleaseAge?: Option.Option, sourceOverride?: RegistrySource, workspaceResolver?: WorkspacePackDependencyResolver, dependencyResolver?: PackDependencyRefResolver) => Effect.Effect; export declare const resolvePackDependenciesWithReleaseAge: (pack: PackRef, sources: SourceHostProvidersService, evaluation: ReleaseAgeEvaluation, sourceOverride?: RegistrySource, workspaceResolver?: WorkspacePackDependencyResolver, dependencyResolver?: PackDependencyRefResolver) => Effect.Effect; export {}; //# sourceMappingURL=dependency-resolution.d.ts.map