import { FsAddress } from '../FsAddress.fs.js';
import { uint32, int32 } from '@fable-org/fable-library-js/Int32.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export declare class FsRangeAddress {
    readonly lastAddress: FsAddress;
    readonly firstAddress: FsAddress;
    _firstAddress: FsAddress;
    _lastAddress: FsAddress;
    constructor(firstAddress: FsAddress, lastAddress: FsAddress);
    static fromString(rangeAddress: string): FsRangeAddress;
    Copy(): FsRangeAddress;
    static copy(rangeAddress: FsRangeAddress): FsRangeAddress;
    Extend(address: FsAddress): void;
    Normalize(): void;
    get Range(): string;
    set Range(address: string);
    toString(): string;
    get FirstAddress(): FsAddress;
    get LastAddress(): FsAddress;
    Union(rangeAddress: FsRangeAddress): FsRangeAddress;
}
export declare function FsRangeAddress_$reflection(): TypeInfo;
export declare function FsRangeAddress_$ctor_7E77A4A0(firstAddress: FsAddress, lastAddress: FsAddress): FsRangeAddress;
/**
 * Given A1-based top left start and bottom right end indices, returns a "A1:A1"-style area-
 */
export declare function Range_ofBoundaries(fromCellReference: string, toCellReference: string): string;
/**
 * Given a "A1:A1"-style area, returns A1-based cell start and end cellReferences.
 */
export declare function Range_toBoundaries(area: string): [string, string];
/**
 * Gets the right boundary of the area.
 */
export declare function Range_rightBoundary(area: string): uint32;
/**
 * Gets the left boundary of the area.
 */
export declare function Range_leftBoundary(area: string): uint32;
/**
 * Gets the Upper boundary of the area.
 */
export declare function Range_upperBoundary(area: string): uint32;
/**
 * Gets the lower boundary of the area.
 */
export declare function Range_lowerBoundary(area: string): uint32;
/**
 * Moves both start and end of the area by the given amount (positive amount moves area to right and vice versa).
 */
export declare function Range_moveHorizontal(amount: int32, area: string): string;
/**
 * Moves both start and end of the area by the given amount (positive amount moves area to right and vice versa).
 */
export declare function Range_moveVertical(amount: int32, area: string): string;
/**
 * Extends the right boundary of the area by the given amount (positive amount increases area to right and vice versa).
 */
export declare function Range_extendRight(amount: int32, area: string): string;
/**
 * Extends the left boundary of the area by the given amount (positive amount decreases the area to left and vice versa).
 */
export declare function Range_extendLeft(amount: int32, area: string): string;
/**
 * Returns true if the column index of the reference exceeds the right boundary of the area.
 */
export declare function Range_referenceExceedsAreaRight(reference: string, area: string): boolean;
/**
 * Returns true if the column index of the reference exceeds the left boundary of the area.
 */
export declare function Range_referenceExceedsAreaLeft(reference: string, area: string): boolean;
/**
 * Returns true if the column index of the reference exceeds the upper boundary of the area.
 */
export declare function Range_referenceExceedsAreaAbove(reference: string, area: string): boolean;
/**
 * Returns true if the column index of the reference exceeds the lower boundary of the area.
 */
export declare function Range_referenceExceedsAreaBelow(reference: string, area: string): boolean;
/**
 * Returns true if the reference does not lie in the boundary of the area.
 */
export declare function Range_referenceExceedsArea(reference: string, area: string): boolean;
/**
 * Returns true if the A1:A1-style area is of correct format.
 */
export declare function Range_isCorrect(area: string): boolean;
//# sourceMappingURL=FsRangeAddress.fs.d.ts.map