import type { Monaco } from "@monaco-editor/react";
import type { editor } from "monaco-editor";
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
import type { MonacoLanguage } from "./MonacoEditor";
/** Imperative handle returned via `ref` — gives consumers programmatic
 *  access to both sides of the diff without exposing the lazy-loaded
 *  module type to their build graph. */
export interface MonacoDiffEditorHandle {
    /** Move keyboard focus to the modified-side editor. */
    focus(): void;
    /** Access the raw Monaco diff editor (null until mounted). */
    getDiffEditor(): editor.IStandaloneDiffEditor | null;
    /** Access the Monaco namespace (null until mounted). */
    getMonaco(): Monaco | null;
    /** Read the original-side value. */
    getOriginalValue(): string;
    /** Read the modified-side value. */
    getModifiedValue(): string;
    /** Replace the modified-side value. */
    setModifiedValue(value: string): void;
}
type DivPropsBase = Omit<ComponentPropsWithoutRef<"div">, "onChange" | "children">;
export interface MonacoDiffEditorProps extends DivPropsBase {
    original: string;
    modified: string;
    onModifiedChange?: (value: string) => void;
    language?: MonacoLanguage;
    /** Side-by-side vs inline diff. Default "side-by-side". */
    renderSideBySide?: boolean;
    /** Read-only on the right side. Default false. */
    readOnly?: boolean;
    /** Show only changed regions. */
    hideUnchangedRegions?: boolean;
    /** Editor height. Default 360. */
    height?: number | string;
    minHeight?: number;
    /** Labels above each side. */
    originalLabel?: ReactNode;
    modifiedLabel?: ReactNode;
    toolbar?: ReactNode;
    /** Pass-through Monaco diff editor options. */
    options?: editor.IDiffEditorConstructionOptions;
    onMount?: (editor: editor.IStandaloneDiffEditor, monaco: Monaco) => void;
    theme?: string;
    hideToolbar?: boolean;
}
export declare const MonacoDiffEditor: import("react").ForwardRefExoticComponent<MonacoDiffEditorProps & import("react").RefAttributes<MonacoDiffEditorHandle>>;
export {};
//# sourceMappingURL=MonacoDiffEditor.d.ts.map