/**
 * 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 { DataCubeColumnKind, type DataCubeFont, type DataCubeFontTextAlignment, type DataCubeFontFormatUnderlineVariant, type DataCubeNumberScale, type DataCubeColumnPinPlacement, type DataCubeFontCase, type DataCubeOperationValue, type DataCubeQuerySortDirection } from '../DataCubeQueryEngine.js';
import { SerializationFactory } from '@finos/legend-shared';
export type DataCubeConfigurationColorKey = 'normal' | 'zero' | 'negative' | 'error';
export declare class DataCubeColumnConfiguration {
    readonly uuid: string;
    name: string;
    type: string;
    kind: DataCubeColumnKind;
    displayName?: string | undefined;
    decimals?: number | undefined;
    displayCommas: boolean;
    negativeNumberInParens: boolean;
    numberScale?: DataCubeNumberScale | undefined;
    missingValueDisplayText?: string | undefined;
    unit?: string | undefined;
    fontFamily?: DataCubeFont | undefined;
    fontSize?: number | undefined;
    fontBold?: boolean | undefined;
    fontItalic?: boolean | undefined;
    fontUnderline?: DataCubeFontFormatUnderlineVariant | undefined;
    fontStrikethrough?: boolean | undefined;
    fontCase?: DataCubeFontCase | undefined;
    textAlign?: DataCubeFontTextAlignment | undefined;
    normalForegroundColor?: string | undefined;
    negativeForegroundColor?: string | undefined;
    zeroForegroundColor?: string | undefined;
    errorForegroundColor?: string | undefined;
    normalBackgroundColor?: string | undefined;
    negativeBackgroundColor?: string | undefined;
    zeroBackgroundColor?: string | undefined;
    errorBackgroundColor?: string | undefined;
    /**
     * Used to indicate if the column is to be fetched as part of the result
     * or to be used in aggregation. This would influence data-fetching.
     */
    isSelected: boolean;
    /**
     * Unlike `isSelected`, this is used to indicate if the column is to be displayed
     * in the grid or not, this would not influence data-fetching, i.e. the column
     * is still fetched and used in various part of the query, but the column associated
     * will not be displayed in the result grid.
     */
    hideFromView: boolean;
    blur: boolean;
    fixedWidth?: number | undefined;
    minWidth?: number | undefined;
    maxWidth?: number | undefined;
    pinned?: DataCubeColumnPinPlacement | undefined;
    displayAsLink: boolean;
    linkLabelParameter?: string | undefined;
    aggregateOperator: string;
    aggregationParameters: DataCubeOperationValue[];
    excludedFromPivot: boolean;
    pivotSortDirection?: DataCubeQuerySortDirection | undefined;
    pivotStatisticColumnFunction?: string | undefined;
    constructor(name: string, type: string);
    _convertPreciseToPrimitiveType(type: string): string;
    static readonly serialization: SerializationFactory<DataCubeColumnConfiguration>;
    serialize(): import("@finos/legend-shared").PlainObject<T>;
}
export declare class DataCubePivotLayoutConfiguration {
    expandedPaths: string[];
    static readonly serialization: SerializationFactory<DataCubePivotLayoutConfiguration>;
    serialize(): import("@finos/legend-shared").PlainObject<T>;
}
export declare class DataCubeDimensionConfiguration {
    name: string;
    columns: string[];
    static readonly serialization: SerializationFactory<DataCubeDimensionConfiguration>;
}
export declare class DataCubeDimensionsConfiguration {
    dimensions: DataCubeDimensionConfiguration[];
    static readonly serialization: SerializationFactory<DataCubeDimensionsConfiguration>;
}
export declare class DataCubeConfiguration {
    readonly uuid: string;
    name: string;
    description?: string | undefined;
    columns: DataCubeColumnConfiguration[];
    showHorizontalGridLines: boolean;
    showVerticalGridLines: boolean;
    gridLineColor: string;
    gridMode: import("../DataCubeQueryEngine.js").DataCubeGridMode;
    fontFamily: DataCubeFont;
    fontSize: number;
    fontBold: boolean;
    fontItalic: boolean;
    fontUnderline?: DataCubeFontFormatUnderlineVariant | undefined;
    fontStrikethrough: boolean;
    fontCase?: DataCubeFontCase | undefined;
    textAlign: DataCubeFontTextAlignment;
    normalForegroundColor: string;
    negativeForegroundColor: string;
    zeroForegroundColor: string;
    errorForegroundColor: string;
    normalBackgroundColor: string;
    negativeBackgroundColor: string;
    zeroBackgroundColor: string;
    errorBackgroundColor: string;
    alternateRows: boolean;
    alternateRowsStandardMode: boolean;
    alternateRowsColor: string;
    alternateRowsCount: number;
    showSelectionStats: boolean;
    showWarningForTruncatedResult: boolean;
    initialExpandLevel?: number | undefined;
    showRootAggregation: boolean;
    showLeafCount: boolean;
    treeColumnSortDirection: DataCubeQuerySortDirection;
    pivotStatisticColumnName: string;
    pivotStatisticColumnPlacement?: DataCubeColumnPinPlacement | undefined;
    pivotLayout: DataCubePivotLayoutConfiguration;
    dimensions: DataCubeDimensionsConfiguration;
    static readonly serialization: SerializationFactory<DataCubeConfiguration>;
    getColumn(name: string): DataCubeColumnConfiguration | undefined;
    serialize(): import("@finos/legend-shared").PlainObject<T>;
    clone(): DataCubeConfiguration;
}
//# sourceMappingURL=DataCubeConfiguration.d.ts.map