/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type V1_AppliedFunction } from '@finos/legend-graph';
import type { DataCubeQueryFilterOperation } from './filter/DataCubeQueryFilterOperation.js';
import type { DataCubeQueryAggregateOperation } from './aggregation/DataCubeQueryAggregateOperation.js';
export declare enum DataCubeFunction {
    EXTEND = "meta::pure::functions::relation::extend",
    FILTER = "meta::pure::functions::relation::filter",
    GROUP_BY = "meta::pure::functions::relation::groupBy",
    LIMIT = "meta::pure::functions::relation::limit",
    PIVOT = "meta::pure::functions::relation::pivot",
    SELECT = "meta::pure::functions::relation::select",
    SLICE = "meta::pure::functions::relation::slice",
    SORT = "meta::pure::functions::relation::sort",
    OVER = "meta::pure::functions::relation::over",
    CAST = "meta::pure::functions::lang::cast",
    FROM = "meta::pure::mapping::from",
    ASCENDING = "meta::pure::functions::relation::ascending",
    DESCENDING = "meta::pure::functions::relation::descending",
    ABS = "meta::pure::functions::math::abs",
    AND = "meta::pure::functions::boolean::and",
    OR = "meta::pure::functions::boolean::or",
    NOT = "meta::pure::functions::boolean::not",
    TO_LOWERCASE = "meta::pure::functions::string::toLower",
    CONTAINS = "meta::pure::functions::string::contains",
    ENDS_WITH = "meta::pure::functions::string::endsWith",
    EQUAL = "meta::pure::functions::boolean::equal",
    GREATER_THAN = "meta::pure::functions::boolean::greaterThan",
    GREATER_THAN_OR_EQUAL = "meta::pure::functions::boolean::greaterThanEqual",
    IN = "meta::pure::functions::collection::in",
    IS_EMPTY = "meta::pure::functions::collection::isEmpty",
    LESS_THAN = "meta::pure::functions::boolean::lessThan",
    LESS_THAN_OR_EQUAL = "meta::pure::functions::boolean::lessThanEqual",
    STARTS_WITH = "meta::pure::functions::string::startsWith",
    AVERAGE = "meta::pure::functions::math::average",
    COUNT = "meta::pure::functions::collection::count",
    DISTINCT = "meta::pure::functions::collection::distinct",
    FIRST = "meta::pure::functions::collection::first",
    JOIN_STRINGS = "meta::pure::functions::string::joinStrings",
    LAST = "meta::pure::functions::collection::last",
    MAX = "meta::pure::functions::collection::max",
    MIN = "meta::pure::functions::collection::min",
    SUM = "meta::pure::functions::math::sum",
    STANDARD_DEVIATION_POPULATION = "meta::pure::functions::math::stdDevPopulation",
    STANDARD_DEVIATION_SAMPLE = "meta::pure::functions::math::stdDevSample",
    UNIQUE_VALUE_ONLY = "meta::pure::functions::collection::uniqueValueOnly",
    VARIANCE_POPULATION = "meta::pure::functions::math::variancePopulation",
    VARIANCE_SAMPLE = "meta::pure::functions::math::varianceSample"
}
export type DataCubeQueryFunctionMap = {
    leafExtend?: V1_AppliedFunction[] | undefined;
    filter?: V1_AppliedFunction | undefined;
    pivotSort?: V1_AppliedFunction | undefined;
    pivot?: V1_AppliedFunction | undefined;
    pivotCast?: V1_AppliedFunction | undefined;
    groupBy?: V1_AppliedFunction | undefined;
    groupBySort?: V1_AppliedFunction | undefined;
    groupExtend?: V1_AppliedFunction[] | undefined;
    select?: V1_AppliedFunction | undefined;
    sort?: V1_AppliedFunction | undefined;
    limit?: V1_AppliedFunction | undefined;
};
export declare enum DataCubeNumberScale {
    BASIS_POINT = "Basis Points (bp)",
    PERCENT = "Percent (%)",
    THOUSANDS = "Thousands (k)",
    MILLIONS = "Millions (m)",
    BILLIONS = "Billions (b)",
    TRILLIONS = "Trillions (t)",
    AUTO = "Auto (k/m/b/t)"
}
export declare enum DataCubeFont {
    ARIAL = "Arial",
    ROBOTO = "Roboto",
    ROBOTO_CONDENSED = "Roboto Condensed",
    TIMES_NEW_ROMAN = "Times New Roman",
    GEORGIA = "Georgia",
    ROBOTO_SERIF = "Roboto Serif",
    JERBRAINS_MONO = "Jetbrains Mono",
    ROBOTO_MONO = "Roboto Mono",
    UBUNTU_MONO = "Ubuntu Mono"
}
export declare enum DataCubeFontTextAlignment {
    CENTER = "center",
    LEFT = "left",
    RIGHT = "right"
}
export declare enum DataCubeFontCase {
    LOWERCASE = "lowercase",
    UPPERCASE = "uppercase",
    CAPITALIZE = "capitalize"
}
export declare enum DataCubeFontFormatUnderlineVariant {
    SOLID = "solid",
    DASHED = "dashed",
    DOTTED = "dotted",
    DOUBLE = "double",
    WAVY = "wavy"
}
export declare enum DataCubeColumnKind {
    MEASURE = "Measure",
    DIMENSION = "Dimension"
}
export declare enum DataCubeOperationAdvancedValueType {
    COLUMN = "COLUMN",
    VOID = "VOID"
}
export type DataCubeOperationValue = {
    value?: unknown;
    type: string;
};
export declare enum DataCubeQueryAggregateOperator {
    SUM = "sum",
    AVERAGE = "avg",
    COUNT = "count",
    MIN = "min",
    MAX = "max",
    UNIQUE = "uniq",
    FIRST = "first",
    LAST = "last",
    VARIANCE_POPULATION = "var",
    VARIANCE_SAMPLE = "var_sample",
    STANDARD_DEVIATION_POPULATION = "std",
    STANDARD_DEVIATION_SAMPLE = "std_sample",
    JOIN_STRINGS = "strjoin"
}
export declare enum DataCubeQueryClientSideAggregateOperator {
    SUM = "sum",
    AVERAGE = "avg",
    MEDIAN = "median",
    COUNT = "count",
    MIN = "min",
    MAX = "max",
    VARIANCE_POPULATION = "var",
    VARIANCE_SAMPLE = "var_sample",
    STANDARD_DEVIATION_POPULATION = "std",
    STANDARD_DEVIATION_SAMPLE = "std_sample"
}
export declare enum DataCubeQueryFilterOperator {
    LESS_THAN = "<",
    LESS_THAN_OR_EQUAL = "<=",
    EQUAL = "=",
    NOT_EQUAL = "!=",
    GREATER_THAN = ">",
    GREATER_THAN_OR_EQUAL = ">=",
    IN = "in",
    NOT_IN = "not in",
    IS_NULL = "is null",
    IS_NOT_NULL = "is not null",
    EQUAL_CASE_INSENSITIVE = "= (case-insensitive)",
    NOT_EQUAL_CASE_INSENSITIVE = "!= (case-insensitive)",
    IN_CASE_INSENSITIVE = "in (case-insensitive)",
    NOT_IN_CASE_INSENSITIVE = "not in (case-insensitive)",
    CONTAIN = "contains",
    CONTAIN_CASE_INSENSITIVE = "contains (case-insensitive)",
    NOT_CONTAIN = "does not contain",
    START_WITH = "starts with",
    START_WITH_CASE_INSENSITIVE = "starts with (case-insensitive)",
    NOT_START_WITH = "does not start with",
    END_WITH = "ends with",
    END_WITH_CASE_INSENSITIVE = "ends with (case-insensitive)",
    NOT_END_WITH = "does not end with",
    LESS_THAN_COLUMN = "< value in column",
    LESS_THAN_OR_EQUAL_COLUMN = "<= value in column",
    EQUAL_COLUMN = "= value in column",
    EQUAL_CASE_INSENSITIVE_COLUMN = "= (case-insensitive) value in column",
    NOT_EQUAL_COLUMN = "!= value in column",
    NOT_EQUAL_CASE_INSENSITIVE_COLUMN = "!= (case-insensitive) value in column",
    GREATER_THAN_COLUMN = "> value in column",
    GREATER_THAN_OR_EQUAL_COLUMN = ">= value in column"
}
export declare enum DataCubeQueryFilterGroupOperator {
    AND = "and",
    OR = "or"
}
export declare enum DataCubeQuerySortDirection {
    ASCENDING = "Ascending",
    DESCENDING = "Descending"
}
export declare enum DataCubeColumnPinPlacement {
    LEFT = "Left",
    RIGHT = "Right"
}
export declare enum DataCubeColumnDataType {
    NUMBER = "Numeric",
    TEXT = "Text",
    DATE = "Date",
    TIME = "Time"
}
export declare enum DataCubeGridMode {
    STANDARD = "Standard",
    MULTIDIMENSIONAL = "Multidimensional"
}
export declare enum DataCubeClientModelOption {
    ROW_DATA = "rowData",
    COLUMN_DEFS = "columnDefs",
    LOADING = "loading"
}
export declare enum DataCubeTitleBarMenuItems {
    VIEW_SOURCE = "View Source",
    RESET_TO_LATEST_SAVE = "Reset to Latest Save",
    UPDATE_INFO = "Update Info...",
    DELETE_DATACUBE = "Delete DataCube...",
    SEE_DOCUMENTATION = "See Documentation",
    ABOUT = "About",
    UNDO = "Undo",
    REDO = "Redo",
    SETTINGS = "Settings..."
}
export declare enum DataCubeOpenEditorSource {
    STATUS_BAR = "Status Bar",
    GRID_MENU = "Grid Menu"
}
export declare const PIVOT_COLUMN_NAME_VALUE_SEPARATOR = "__|__";
export declare const TREE_COLUMN_VALUE_SEPARATOR = "__/__";
export declare const DEFAULT_LAMBDA_VARIABLE_NAME = "x";
export declare const DEFAULT_REPORT_NAME = "New Report";
export declare const DEFAULT_TREE_COLUMN_SORT_DIRECTION = DataCubeQuerySortDirection.ASCENDING;
export declare const DEFAULT_PIVOT_STATISTIC_COLUMN_NAME = "Total";
export declare const DEFAULT_PIVOT_COLUMN_SORT_DIRECTION = DataCubeQuerySortDirection.ASCENDING;
export declare const DEFAULT_ROOT_AGGREGATION_COLUMN_VALUE = "[ROOT]";
export declare const DEFAULT_URL_LABEL_QUERY_PARAM = "dataCube.linkLabel";
export declare const DEFAULT_MISSING_VALUE_DISPLAY_TEXT = "";
export declare const DEFAULT_GRID_LINE_COLOR: string;
export declare const DEFAULT_ROW_HIGHLIGHT_BACKGROUND_COLOR = "#d7e0eb";
export declare const DEFAULT_COLUMN_WIDTH = 300;
export declare const DEFAULT_COLUMN_MIN_WIDTH = 50;
export declare const DEFAULT_COLUMN_MAX_WIDTH: undefined;
export declare const DEFAULT_GRID_MODE = DataCubeGridMode.STANDARD;
export declare const DEFAULT_FONT_FAMILY = DataCubeFont.ROBOTO;
export declare const DEFAULT_FONT_SIZE = 11;
export declare const DEFAULT_FONT_BOLD = false;
export declare const DEFAULT_FONT_ITALIC = false;
export declare const DEFAULT_FONT_CASE: undefined;
export declare const DEFAULT_FONT_UNDERLINED: undefined;
export declare const DEFAULT_FONT_STRIKETHROUGH = false;
export declare const DEFAULT_TEXT_ALIGN = DataCubeFontTextAlignment.LEFT;
export declare const DEFAULT_FOREGROUND_COLOR: string;
export declare const DEFAULT_BACKGROUND_COLOR: string;
export declare const DEFAULT_ROW_BACKGROUND_COLOR: string;
export declare const DEFAULT_NEGATIVE_FOREGROUND_COLOR: string;
export declare const DEFAULT_ZERO_FOREGROUND_COLOR: string;
export declare const DEFAULT_ERROR_FOREGROUND_COLOR: string;
export declare const TAB_SIZE = 2;
export declare const DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
export declare const TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH = 3;
export declare const TYPEAHEAD_SEARCH_LIMIT = 10;
export declare const EMPTY_VALUE_PLACEHOLDER = "(None)";
export declare function _defaultPrimitiveTypeValue(type: string): unknown;
export declare function getFilterOperation(operator: string, operators: DataCubeQueryFilterOperation[]): DataCubeQueryFilterOperation;
export declare function getAggregateOperation(operator: string, aggregateOperations: DataCubeQueryAggregateOperation[]): DataCubeQueryAggregateOperation;
export declare function getDataType(type: string): DataCubeColumnDataType;
export declare function ofDataType(type: string, dataTypes: DataCubeColumnDataType[]): boolean;
export declare function isDimensionalGridMode(gridMode: DataCubeGridMode): gridMode is DataCubeGridMode.MULTIDIMENSIONAL;
export declare function isPrimitiveType(type: string): boolean;
export declare function isPivotResultColumnName(columnName: string): boolean;
export declare function getPivotResultColumnBaseColumnName(columnName: string): string;
//# sourceMappingURL=DataCubeQueryEngine.d.ts.map