import { type ScanInput } from './scanner.js'; import { type ImportAction, type ImportFile, type ImportJob, type ImportScan, type ImportTarget } from './types.js'; export interface ImportServiceOptions { stateDir: string; owner: string; validateTarget?: (target: ImportTarget) => void; isConnected?: (candidate: ImportScan['candidates'][number], workspaceRoot?: string) => boolean; reservedNames?: (target: ImportTarget) => string[]; isWorkspaceTrusted?: (root: string) => boolean; refreshSkills?: () => void | Promise; } export declare class ImportService { private readonly options; private readonly repo; private readonly root; constructor(options: ImportServiceOptions); scan(input: ScanInput): Promise; getScan(id: string): ImportScan; discardUnusedScan(id: string): void; storeScan(scan: ImportScan, workspaceRoot?: string): ImportScan; plan(scanId: string, target: ImportTarget, choices: Array & { name?: string; }>): import("./types.js").ImportPlan; describeSkills(scan: ImportScan, target: ImportTarget): { candidate: import("./types.js").ImportCandidate; status: "ready" | "blocked" | "conflict" | "existing"; reason: string; targetName: string; }[]; readSnapshot(scanId: string, candidateId: string): ImportFile[]; jobByKey(key: string): ImportJob; validateTarget(target: ImportTarget): void; reservedNames(target: ImportTarget): string[]; isWorkspaceTrusted(root: string): boolean; getPlan(id: string): import("./types.js").ImportPlan; apply(planId: string, key: string): ImportJob; private renameSkill; getJob(id: string): ImportJob; recoverAndClean(): Promise; history(): ImportJob[]; activate(id: string, candidateIds: string[]): Promise; private publish; rollback(id: string, candidateIds: string[]): Promise; private trashPath; private recover; private targetHash; private assertLive; private checkSelection; private lock; }