import { SortDirection } from '@angular/material/sort';
import { AnalyticsMeasure, Dimension, IMember, Measure, Property } from '@metad/ocap-core';
export type SemanticExpression = {
    negative?: string;
    critical?: string;
    positive?: string;
    neutral?: string;
    information?: string;
} | ((rawRow: any) => string);
export declare enum SemanticStyle {
    'border-left' = "border-left",
    'border-right' = "border-right",
    'border-top' = "border-top",
    'border-bottom' = "border-bottom",
    'color' = "color",
    'background' = "background"
}
export interface Semantic {
    style?: SemanticStyle;
    expression: SemanticExpression;
}
export declare function resolveSemanticClasses(semantic: Semantic, columnName: string): any;
export interface AnalyticalGridOptions {
    showToolbar?: boolean;
    strip?: boolean;
    grid?: boolean;
    paging?: boolean;
    pageSize?: number;
    sticky?: boolean;
    hideDataDownload?: boolean;
    initialRowLevel?: number;
    initialColumnLevel?: number;
    sortable?: boolean;
    selectable?: boolean;
    digitsInfo?: string;
    unit?: string;
    currencyCode?: string;
}
/**
 * 行的列配置类型
 */
export interface AnalyticalGridColumn extends Dimension, AnalyticalGridColumnOptions {
    property?: Property;
    member?: IMember;
    isFilterOpen?: boolean;
    sortDirection?: SortDirection;
    search?: string;
    /**
     * inner state of excel style filter
     */
    _selections?: string[];
    /**
     * filter values of column
     */
    selections?: string[];
    /**
     * states for Conditional Cell Styling
     */
    cellClasses?: string | Record<string, (rowData: any, columnKey: string, cellValue: any, rowIndex: number) => boolean>;
    sticky?: boolean;
    expandable: boolean;
    colspan: number;
    columns: AnalyticalGridColumn[];
    parent: AnalyticalGridColumn;
    isCell?: boolean;
    measure?: string;
    minValue?: number;
    maxValue?: number;
    palette?: {
        name: string;
        reverse?: boolean;
    };
    treeLevel?: number;
}
export interface AnalyticalGridColumnOptions {
    formatting?: Measure['formatting'];
    semantic?: Semantic;
    bar?: boolean;
    palette?: AnalyticsMeasure['palette'];
}
/**
 * VisualMap type for measure
 */
export interface VisualMap extends AnalyticsMeasure {
    name: string;
    minValue: number;
    maxValue: number;
    colorPrecision: number;
}
export interface AnalyticalGridCell {
    value: number;
}
export declare function filterArray(data: any[], filters: Record<string, string[]>): any[];
export declare function moveLeft(arr: any[], value: any): any[];
export declare function moveRight(arr: any[], value: any): any[];
export interface IColumnSelectionEventArgs {
    event?: Event;
    newSelection?: AnalyticalGridColumn[];
    oldSelection?: AnalyticalGridColumn[];
    owner: any;
}
