import PropertyPersister from "../dagm/PropertyPersister";
import { IRange, RangeDirection, RangeVisitor, RangeBounds } from "./Range";
export interface IMultiRange extends IRange {
    asRanges: () => IRange[];
    readonly isMultiRange: boolean;
}
export declare const sortRanges: (ranges: IRange[]) => IRange[];
export declare class AlignedMultiRange implements IMultiRange {
    _aligned: {
        inputRanges: IRange[];
        ranges: IRange[][];
        width: number;
        height: number;
        left: number;
        top: number;
        bottom: number;
        right: number;
        columnOffsets: number[];
        columnLengths: number[];
        rowOffsets: number[];
        rowLengths: number[];
        sheetName?: string;
    };
    constructor(input: IRange[] | IRange);
    get width(): number;
    get height(): number;
    get left(): number;
    get leftFixed(): boolean;
    get top(): number;
    get topFixed(): boolean;
    get bottom(): number;
    get bottomFixed(): boolean;
    get right(): number;
    get rightFixed(): boolean;
    get sheetName(): string;
    get isMultiRange(): boolean;
    get isCellRange(): boolean;
    scan(visitor: RangeVisitor, bounds?: RangeBounds): void;
    subRange(left: number, top: number, right: number, bottom: number): IRange | null;
    slice(index: number, direction?: RangeDirection): IRange | null;
    asRanges(): IRange[];
    toString(): string;
}
export declare const parseRangeSelection: (input: IRange[] | IRange | string | string[] | IMultiRange, forceFixed?: boolean) => IRange[] | IRange | null;
export declare const createRangeSelection: (input: IRange[] | IRange | string | string[] | IMultiRange, singleLength?: boolean, alignRanges?: boolean, forceFixed?: boolean) => IRange[] | IRange | null;
export declare const createRangeSelectionSetter: (singleLength?: boolean, alignRanges?: boolean, forceFixed?: boolean) => (value: any) => any;
export declare class RangeSelectionPersister extends PropertyPersister {
    toJSON(value: any): any;
    fromJSON(jsonValue: any): IRange | IRange[];
}
//# sourceMappingURL=MultiRange.d.ts.map