/**
 * Graphiti capture wrapper for the semantic graph.
 *
 * Dual-writes: calls GraphitiClient.addEpisode() for knowledge extraction,
 * then appends an edge.attached event to the semantic graph log so the
 * capture is visible in the unified graph.
 *
 * The wrapper resolves a file path (if provided) to an anchor UUID in the
 * runtime graph. If no path is provided or the path doesn't match an anchor,
 * attaches to a synthetic project-root anchor.
 */
import type { GraphitiClient } from "../graphiti-client.js";
import type { LogWriter } from "./log-writer.js";
import type { SemanticGraphClient } from "./runtime-client.js";
export interface CaptureOptions {
    /** File path this capture relates to (for anchor resolution). */
    filePath?: string;
    /** Graphiti group ID override. Defaults to project name. */
    groupId?: string;
    /** Source type for Graphiti. */
    source?: string;
    /** Source description for Graphiti. */
    sourceDescription?: string;
    /** Relation label for the edge. Defaults to "knowledge". */
    relation?: string;
}
export interface CaptureResult {
    graphitiSuccess: boolean;
    edgeWritten: boolean;
    edgeUuid?: string;
    anchorUuid?: string;
}
/**
 * Wraps Graphiti episode capture with a semantic graph log write.
 *
 * Call this instead of GraphitiClient.addEpisode() directly when you want
 * the capture to also appear in the semantic graph.
 */
export declare function captureWithLog(name: string, body: string, projectRoot: string, graphiti: GraphitiClient, logWriter: LogWriter, runtimeClient: SemanticGraphClient, options?: CaptureOptions): Promise<CaptureResult>;
