import * as FileSystem from "effect/FileSystem"; import * as HttpClient from "effect/unstable/http/HttpClient"; import * as Path from "effect/Path"; import * as Effect from "effect/Effect"; import { type AppError } from "../app-error/index.js"; import { type TreeIntegrity } from "../extensions/index.js"; import type { SourceHostProvidersService } from "../source-resolution/index.js"; import type { SkillExtensionRef } from "./refs.js"; import type { WorkspaceLayout } from "../workspace/layout.js"; export type ProvideFs = (effect: Effect.Effect) => Effect.Effect>; export type ProvideRegistryMaterialization = (effect: Effect.Effect) => Effect.Effect>; /** Reuse inputs sourced from the caller's operation context and lockfile. */ export type CanonicalReuseContext = { readonly force: boolean; readonly lockedVersion: string | undefined; readonly lockedTreeIntegrity: TreeIntegrity | undefined; }; export interface MaterializedSkillCanonical { readonly skillSrcPath: string; readonly treeIntegrity?: TreeIntegrity; } export declare const materializeSkillCanonical: (args: { readonly ref: SkillExtensionRef; readonly sanitizedName: string; readonly fs: FileSystem.FileSystem; readonly pathService: Path.Path; readonly baseDir: string; readonly layout: WorkspaceLayout; readonly sources: SourceHostProvidersService; readonly provide: ProvideFs; readonly provideRegistry: ProvideRegistryMaterialization; readonly reuse?: CanonicalReuseContext; }) => Effect.Effect; export declare const ensureSkillAgentArtifact: (args: { readonly canonicalSkillSrcPath: string; readonly targetDir: string; readonly sanitizedName: string; readonly pathService: Path.Path; readonly baseDir: string; readonly provide: ProvideFs; }) => Effect.Effect; export declare const removeSkillAgentArtifact: (args: { readonly fs: FileSystem.FileSystem; readonly pathService: Path.Path; readonly targetDir: string; readonly sanitizedName: string; }) => Effect.Effect; //# sourceMappingURL=materialization.d.ts.map