/**
 * Capture actionable items from conversation text.
 *
 * Uses heuristic pattern matching (no LLM) to extract:
 *   - Decisions ("we decided", "let's do", "going with")
 *   - Specs / requirements (bullet lists after spec/feature/plan headings)
 *   - Rules / constraints ("never", "always", "the rule is", "must")
 *   - Errors / gotchas ("error:", "bug:", "gotcha:", "watch out")
 *   - Preferences ("prefer", "use X instead of Y", "don't use")
 */
interface ExtractedItem {
    content: string;
    category: string;
    tags: string[];
}
/**
 * Main extraction function. Scans text for actionable items using heuristics.
 */
export declare function extractFromText(text: string): ExtractedItem[];
export interface CaptureOptions {
    source: 'stdin' | 'file' | 'last-session';
    filePath?: string;
    /**
     * Explicit transcript path for `--last-session`. When not set, we fall back
     * to reading a JSON payload from stdin (the shape Claude Code / OpenCode
     * SessionEnd hooks pass) and then to auto-discovery under
     * `~/.claude/projects/`.
     */
    transcriptPath?: string;
    /**
     * Tee stdout/stderr to this log file while capture runs. Mirrors the
     * pattern used by `hippo sleep --log-file` so the SessionEnd hook output
     * (invisible during TUI teardown) can be surfaced via `hippo last-sleep`
     * on the next session start. Appends rather than truncates — `hippo sleep`
     * writes the same file first in the SessionEnd sequence.
     */
    logFile?: string;
    dryRun: boolean;
    global: boolean;
    /**
     * L9: tenant scope for the dedup read in `cmdCaptureCore`. When provided
     * AND `global` is false, the dedup check only considers this tenant's
     * existing memories. Undefined preserves pre-1.12.1 host-wide dedup
     * behaviour. Ignored when `global: true` (global captures are host-wide).
     */
    tenantId?: string;
}
/**
 * Build a compact text summary from a Claude Code / OpenCode JSONL transcript.
 * Keeps plain user messages and the final chunk of assistant text, drops
 * thinking blocks, tool_use, and tool_result noise. Output is fed to the
 * existing `extractFromText` pipeline.
 *
 * Exported for tests.
 */
export declare function summariseTranscript(jsonl: string): string;
/**
 * Resolve a transcript path for `--last-session`.
 *
 * Priority:
 *   1. Explicit `transcriptPath` option (from `--transcript <path>`)
 *   2. Stdin JSON payload (Claude Code / OpenCode SessionEnd hook shape)
 *   3. Most recent `.jsonl` under `~/.claude/projects/<any>/`
 *
 * Returns null when nothing resolves. Never throws.
 */
export declare function resolveLastSessionTranscript(explicit: string | undefined, stdinText: string | undefined): string | null;
export declare function cmdCapture(hippoRoot: string, options: CaptureOptions): void;
export {};
//# sourceMappingURL=capture.d.ts.map