import type { SandboxRuntimeConfig } from "@anthropic-ai/sandbox-runtime";
import type { SandboxViolationStore } from "@anthropic-ai/sandbox-runtime";
export type SrtSandboxSettings = {
    /** 允许网络访问的域名列表（支持通配符 *.example.com） */
    allowedDomains?: string[];
    /** 拒绝网络访问的域名列表 */
    deniedDomains?: string[];
    /** 拒绝读取的路径列表（如 ~/.ssh） */
    denyRead?: string[];
    /** 允许写入的路径列表（默认拒绝所有写入） */
    allowWrite?: string[];
    /** 在允许写入路径中拒绝写入的路径（如 .env） */
    denyWrite?: string[];
    /** 是否允许绑定本地端口 */
    allowLocalBinding?: boolean;
    /** 允许访问的 Unix Socket 路径列表 */
    allowUnixSockets?: string[];
};
/**
 * 将 allowWrite 列表中的特殊路径解析为绝对路径。
 * - `"."` → workspaceDir（如果提供）或 process.cwd()
 * - `"~"` 或 `"~/"` 前缀 → $HOME 下的绝对路径
 * 这确保 Seatbelt/bwrap profile 得到精确的绝对路径，
 * 避免 "." 被解析为过于宽泛的范围。
 */
export declare function resolveAllowWritePaths(paths: string[], workspaceDir?: string): string[];
/**
 * 从用户设置构建 SandboxRuntimeConfig
 * @param settings 用户 SRT 配置
 * @param workspaceDir 工作空间绝对路径，用于将 "." 解析为明确的绝对路径
 */
export declare function buildSrtConfig(settings?: SrtSandboxSettings, workspaceDir?: string): SandboxRuntimeConfig;
/**
 * 初始化 sandbox-runtime。
 * 幂等：重复调用只会在配置变更时重新初始化。
 */
export declare function initializeSrt(config?: SandboxRuntimeConfig): Promise<void>;
/**
 * 用 sandbox-runtime 包装命令，返回被沙箱包裹的命令字符串。
 * 这是核心执行接口：原始命令经 wrapWithSandbox 包装后，
 * 通过 child_process.spawn(wrappedCommand, { shell: true }) 执行。
 */
export declare function wrapCommandWithSrt(command: string): Promise<string>;
/**
 * 重置 sandbox-runtime 状态，清理所有沙箱资源。
 * 应在进程退出或会话结束时调用。
 */
export declare function resetSrt(): Promise<void>;
/**
 * 获取当前 SRT 状态
 */
export declare function getSrtStatus(): {
    initialized: boolean;
    config: SandboxRuntimeConfig | null;
};
/**
 * 获取 SandboxViolationStore 实例，用于查询/订阅沙箱违规事件。
 * 如果 SRT 未初始化，返回 null。
 */
export declare function getSrtViolationStore(): Promise<SandboxViolationStore | null>;
/**
 * 增强 stderr 输出：如果该命令触发了内核沙箱违规，
 * 在 stderr 末尾追加 `<sandbox_violations>` 结构化标签。
 *
 * @param command - 原始用户命令
 * @param stderr - 命令的 stderr 输出
 * @returns 增强后的 stderr（可能包含追加的违规信息）
 */
export declare function annotateSrtStderr(command: string, stderr: string): Promise<string>;
/**
 * 按命令查询关联的沙箱违规事件。
 * 用于在命令执行后精确获取该命令触发的所有违规。
 *
 * @param command - 原始用户命令
 * @returns 关联的违规事件数组（如 SRT 未初始化则返回空数组）
 */
export declare function getSrtViolationsForCommand(command: string): Promise<Array<{
    line: string;
    command?: string;
    timestamp: Date;
}>>;
/**
 * 命令执行后清理 SRT 状态（违规计数器等）。
 * 应在每条命令的结果处理完成后调用。
 */
export declare function cleanupSrtAfterCommand(): Promise<void>;
