import { List } from 'immutable'; import { Instance } from 'immutable-class'; import { Expression, ExpressionJS, Action, ActionJS, SortAction, LimitAction } from 'swiv-plywood'; import { Dimension } from '../dimension/dimension'; export interface SplitCombineValue { expression: Expression; bucketAction: Action; sortAction: SortAction; limitAction: LimitAction; } export declare type SplitCombineJS = string | SplitCombineJSFull; export interface SplitCombineJSFull { expression: ExpressionJS; bucketAction?: ActionJS; sortAction?: ActionJS; limitAction?: ActionJS; } export interface SplitCombineContext { dimensions: List; } export declare class SplitCombine implements Instance { static SORT_ON_DIMENSION_PLACEHOLDER: string; static isSplitCombine(candidate: any): candidate is SplitCombine; static fromExpression(expression: Expression): SplitCombine; static fromJS(parameters: SplitCombineJS, context?: SplitCombineContext): SplitCombine; expression: Expression; bucketAction: Action; sortAction: SortAction; limitAction: LimitAction; constructor(parameters: SplitCombineValue); valueOf(): SplitCombineValue; toJS(): SplitCombineJS; toJSON(): SplitCombineJS; toString(): string; equals(other: SplitCombine): boolean; equalsByExpression(other: SplitCombine): boolean; toSplitExpression(): Expression; toKey(): string; getNormalizedSortAction(dimensions: List): SortAction; changeBucketAction(bucketAction: Action): SplitCombine; changeSortAction(sortAction: SortAction): SplitCombine; changeSortActionFromNormalized(sortAction: SortAction, dimensions: List): SplitCombine; changeLimitAction(limitAction: LimitAction): SplitCombine; changeLimit(limit: number): SplitCombine; timezoneDependant(): boolean; getDimension(dimensions: List): Dimension; getTitle(dimensions: List): string; getBucketTitle(): string; }