import type { ChatMessage, HistoryMessage } from './types.js';
export type LentaCaptureReason = 'jsonl_file' | 'dom_ingest' | 'emit_agent_messages' | 'manual';
export interface LentaCaptureConfig {
    enabled: boolean;
    agentId: string;
    title?: string;
}
export interface LentaCapturePayload {
    reason: LentaCaptureReason;
    source?: 'dom' | 'jsonl' | 'hybrid';
    emitSeq?: number;
    seqHeld?: boolean;
    transition?: string;
    jsonlRowCount?: number;
    historyMessages: ChatMessage[];
    liveMessages: ChatMessage[];
    messages: ChatMessage[];
    domRaw?: ChatMessage[];
    domViewport?: ChatMessage[];
    jsonlRawRows?: HistoryMessage[];
    jsonlFilePath?: string;
    activeComposerId?: string;
    agentWorking?: boolean;
}
export declare function captureConfigPath(): string;
export declare function readCaptureConfig(): LentaCaptureConfig | null;
export declare function writeCaptureConfig(cfg: LentaCaptureConfig): void;
export declare function clearCaptureConfig(): void;
export declare function captureSessionDir(agentId: string): string;
export declare class LentaCaptureSession {
    private readonly agentId;
    private step;
    private lastSig;
    constructor(agentId: string);
    shouldCapture(targetAgentId: string): boolean;
    record(payload: LentaCapturePayload): string | null;
}
export declare function getLentaCaptureSession(agentId: string): LentaCaptureSession | null;
export declare function captureLentaIfEnabled(agentId: string, payload: LentaCapturePayload): void;
export declare function resolveAgentJsonlPath(projectsDir: string, agentId: string, opts: {
    title?: string;
    composerIdByTitle?: Record<string, string>;
    activeComposerId?: string;
    activeTabTitle?: string;
}): string | undefined;
export declare function listCaptureSteps(agentId: string): string[];
