import { RelayFileClient } from "./client.js"; export interface RelayfileMountHarnessConfig { baseUrl: string; token: string; workspaceId: string; remotePath: string; localDir: string; mode: "poll" | "fuse"; } export interface RelayfileMountHarnessOptions { env?: NodeJS.ProcessEnv | Record; pollIntervalMs?: number; scopes?: string[]; onEvent?: (event: RelayfileMountHarnessEvent) => void; client?: RelayFileClient; } export type RelayfileMountHarnessEvent = { type: "started"; localDir: string; remotePath: string; workspaceId: string; } | { type: "sync.completed"; localDir: string; remotePath: string; files: number; directories: number; } | { type: "permission.denied"; path: string; scopes: string[]; } | { type: "stopped"; localDir: string; remotePath: string; }; export interface RelayfileMountHarnessHandle { readonly config: RelayfileMountHarnessConfig; readonly localDir: string; syncOnce(): Promise; writeLocalFile(relativePath: string, content: string): Promise; stop(): Promise; } export declare class MountHarnessPermissionError extends Error { readonly code = "permission_denied"; readonly path: string; readonly scopes: string[]; constructor(targetPath: string, scopes: string[]); } export declare function readMountHarnessConfig(env?: NodeJS.ProcessEnv | Record): RelayfileMountHarnessConfig; export declare function startMountHarness(options?: RelayfileMountHarnessOptions): Promise; export declare function runMountHarnessCli(argv?: string[], env?: NodeJS.ProcessEnv | Record): Promise;