import { Option } from "../../../Infrastructure/Option";
import { View } from "../../View";
import { TopContext } from "./TopContext/TopContext";
export declare namespace Line {
    interface Config {
        readonly lineHeight: number;
    }
    class ValueObject {
        last: Option<ValueObject>;
        next: Option<ValueObject>;
        readonly view: View;
        readonly topContext: TopContext;
        svgElement: SVGTSpanElement;
        private readonly config;
        constructor(startIndex: number, endIndex: number, last: Option<ValueObject>, next: Option<ValueObject>, view: View);
        private _startIndex;
        get startIndex(): number;
        private _endIndex;
        get endIndex(): number;
        move(offset: number): void;
        inserted(characterCount: number): void;
        get dy(): number;
        get height(): number;
        get y(): number;
        get isBlank(): boolean;
        get content(): string;
        get endWithHardLineBreak(): boolean;
        update(): void;
        render(): SVGTSpanElement;
        remove(): void;
        insertBefore(other: Option<Line.ValueObject>): void;
        insertAfter(other: Option<Line.ValueObject>): void;
        insertInto(parent: SVGTextElement): void;
    }
    namespace Service {
        function divide(view: View, startIndex: number, endIndex: number): ValueObject[];
    }
}
