import { Position } from "../../../core/position.js";
import { Range } from "../../../core/range.js";
import { TextLength } from "../../../core/text/textLength.js";
export declare function lengthDiff(startLineCount: number, startColumnCount: number, endLineCount: number, endColumnCount: number): Length;
export type Length = {
    _brand: "Length";
};
export declare const lengthZero: Length;
export declare function lengthIsZero(length: Length): boolean;
export declare function toLength(lineCount: number, columnCount: number): Length;
export declare function lengthToObj(length: Length): TextLength;
export declare function lengthGetLineCount(length: Length): number;
export declare function lengthGetColumnCountIfZeroLineCount(length: Length): number;
export declare function lengthAdd(length1: Length, length2: Length): Length;
export declare function sumLengths<T>(items: readonly T[], lengthFn: (item: T) => Length): Length;
export declare function lengthEquals(length1: Length, length2: Length): boolean;
export declare function lengthDiffNonNegative(length1: Length, length2: Length): Length;
export declare function lengthLessThan(length1: Length, length2: Length): boolean;
export declare function lengthLessThanEqual(length1: Length, length2: Length): boolean;
export declare function lengthGreaterThanEqual(length1: Length, length2: Length): boolean;
export declare function lengthToPosition(length: Length): Position;
export declare function positionToLength(position: Position): Length;
export declare function lengthsToRange(lengthStart: Length, lengthEnd: Length): Range;
export declare function lengthOfRange(range: Range): TextLength;
export declare function lengthCompare(length1: Length, length2: Length): number;
export declare function lengthOfString(str: string): Length;
export declare function lengthOfStringObj(str: string): TextLength;
export declare function lengthHash(length: Length): number;
export declare function lengthMax(length1: Length, length2: Length): Length;
