import { RangeDirection, IRange } from "../range/Range";
import { IMultiRange } from "../range/MultiRange";
export declare const joinRanges: (ranges: IRange[][] | null) => IRange[] | false;
type RangeFinder = (offset: number) => IRange | IMultiRange | IRange[] | IMultiRange[] | null;
export declare const collectRangeArrays: (ranges: any[], rangeInput: IRange | IMultiRange | IRange[] | IMultiRange[]) => void;
export declare const collectRanges: (length: number, rangeFunc: RangeFinder) => IRange[];
export declare function deriveSeriesDirection(seriesLength: number, firstValRange: IRange, firstTitleRange: IRange, firstXRange: IRange): RangeDirection;
/**
 * This is a condensed version of the IChartSelection. That show
 * the various ranges and a minimum set of range selections.
 * This is useful for displaying the entire charts selections.
 * Note -
 * This only works for simple ranges or aligned ranges.
 * (This is consistent with ms office). If it is a non-aligned
 * set of ranges it returns an empty set.
 */
export interface IChartSelectionSummary {
    xRanges: IRange[];
    valRanges: IRange[];
    sizeRanges: IRange[];
    titleRanges: IRange[];
    seriesDirection: RangeDirection;
    seriesLength: number;
}
export declare const generateChartSelectionSummary: (chartSelection: IChartSelection) => IChartSelectionSummary;
export interface IChartSelection {
    direction: RangeDirection;
    /**
     * Returns a stringified version of of a seriesFormula.
     */
    toString: () => string;
    readonly seriesDirection: RangeDirection;
    readonly axisDirection: RangeDirection;
    readonly seriesLength: number;
    getXRange: () => IRange | null;
    getValRangeAt: (offset: number) => IRange | null;
    getSizeRangeAt: (offset: number) => IRange | null;
    getTitleRangeAt: (offset: number) => IRange | null;
}
export default class ChartSelection implements IChartSelection {
    _private: {
        inputRanges?: IRange[];
        sheet?: any;
        transposed: boolean;
        mainType: string;
        seriesDirection: RangeDirection;
        axisDirection: RangeDirection;
        axisRange: IRange;
        seriesXByOffset: IRange[];
        seriesValByOffset: IRange[];
        seriesTitleByOffset: IRange[];
    };
    constructor(input: IRange[] | IRange | null, sheet: any, transposed?: boolean, mainType?: string);
    getXRange(): IRange | null;
    getValRangeAt(offset: number): IRange | null;
    getSizeRangeAt(_offset: number): IRange | null;
    getTitleRangeAt(offset: number): IRange | null;
    get seriesDirection(): RangeDirection;
    get axisDirection(): RangeDirection;
    get seriesLength(): number;
    get direction(): RangeDirection;
    toString(): string;
}
export {};
//# sourceMappingURL=ChartSelection.d.ts.map