export declare const WORKSPACE_DIR = ".lpm-cache";
export type CleanScope = 'schema' | 'config' | 'mcp' | 'all';
export interface WorkspacePaths {
    root: string;
    state: string;
    schema: string;
    schemaDir: string;
    configRemote: string;
    configLastSet: string;
    configDir: string;
    historyDir: string;
    mcpDir: string;
    configDraft: (timestamp: string) => string;
    mcp: (slug: string) => string;
    relative: (absolute: string) => string;
}
export declare const workspacePaths: (projectDirOverride?: string) => WorkspacePaths;
/**
 * 守卫：projectDir 必须是 plugin 工程根（含 plugin.config.json 或 manifest.json），否则 throw。
 * 任何会创建 .lpm-cache 子内容的入口都应先调用此守卫，防错误目录污染（ISS-O）。
 */
export declare const assertPluginRoot: (projectDir: string) => void;
export declare const ensureWorkspace: (projectDirOverride?: string) => void;
export declare const ensureGitignore: (projectDirOverride?: string) => void;
export interface CleanOptions {
    scope?: CleanScope;
    keepState?: boolean;
    silent?: boolean;
}
export declare const cleanWorkspace: ({ scope, keepState, silent }?: CleanOptions) => void;
/**
 * 把已消费的中间产物移出活跃目录、归档到 historyDir（保留可追溯，不硬删）。
 * 文件名前缀 timestamp 避免多次 set 撞名。归档失败时兜底仍清掉源文件——
 * 守住"活跃目录里不留陈旧基线/草稿"这条不变量（remote.json 留原地会坑后续 diff/删除闸口）。
 */
export declare const archiveFile: (absolutePath: string, historyDir: string) => void;
