/**
 * VersionDiff Organism Component
 *
 * Side-by-side or inline diff render with line-level highlights and
 * a revision picker. Composes atoms for layout. Computes a minimal
 * LCS-based line diff inline (no external diff library).
 */
import React from "react";
import type { EventPayloadValue, EventEmit } from "@almadar/core";
export interface DiffRevision {
    id: string;
    label: string;
    author?: string;
    timestamp?: string;
    content: string;
}
export type DiffLineType = "added" | "removed" | "unchanged" | "context";
export interface DiffLine {
    type: DiffLineType;
    beforeLineNumber?: number;
    afterLineNumber?: number;
    content: string;
}
export type VersionDiffView = "side-by-side" | "inline";
export interface VersionDiffProps {
    /**
     * All available revisions (at least 2). Accepts either a typed array (direct
     * consumers) or the runtime payload shape from a render-ui binding
     * (`@payload.revisions`). Narrowed to `[]` internally when the value isn't
     * an array.
     */
    revisions: readonly DiffRevision[] | EventPayloadValue;
    /** Currently selected "before" revision id. */
    beforeId?: string;
    /** Currently selected "after" revision id. */
    afterId?: string;
    /** Display mode. */
    view?: VersionDiffView;
    /** Called when the user picks a different "before" revision. */
    onSelectBefore?: (id: string) => void;
    /** Called when the user picks a different "after" revision. */
    onSelectAfter?: (id: string) => void;
    /** Called when the user clicks the revert button (passes the "before" id). */
    onRevert?: (id: string) => void;
    /** Event name dispatched via event bus when the "before" revision changes. Payload: { id }. */
    selectBeforeEvent?: EventEmit<{
        id: string;
    }>;
    /** Event name dispatched via event bus when the "after" revision changes. Payload: { id }. */
    selectAfterEvent?: EventEmit<{
        id: string;
    }>;
    /** Event name dispatched via event bus when the user clicks revert. Payload: { id }. */
    revertEvent?: EventEmit<{
        id: string;
    }>;
    /** Language label (informational). */
    language?: string;
    /** Additional CSS classes. */
    className?: string;
}
export declare const VersionDiff: React.FC<VersionDiffProps>;
