import type * as ManifestNamespace from '@ui5/manifest/types/manifest';
import type { ChartColor } from '../../color';
export { ManifestNamespace };
export declare enum DataSourceType {
    OData = "OData",
    ODataAnnotation = "ODataAnnotation"
}
export type ODataVersionType = '2.0' | '4.0' | '4.01';
export interface CrossNavigation {
    inbounds?: {
        [key: string]: ManifestNamespace.Inbound;
    };
}
export interface SapAppSourceTemplate {
    id: string;
    version?: string;
    toolsId?: string;
}
export interface SapApp {
    id?: string;
    title?: string;
    type?: string;
    description?: string;
    dataSources?: SapAppDataSources | SapAppDataSourcesWithOptions;
    offline?: boolean;
    resources?: string;
    sourceTemplate?: SapAppSourceTemplate;
    crossNavigation?: CrossNavigation;
}
export interface SapAppDataSources {
    [key: string]: ManifestNamespace.DataSource;
    mainService: ManifestNamespace.DataSource;
}
export type SapAppDataSourceWithOptions = ManifestNamespace.DataSource & {
    isLocal: boolean;
    order: number;
    isActive: boolean;
};
export interface SapAppDataSourcesWithOptions {
    [key: string]: SapAppDataSourceWithOptions;
}
export declare enum ManifestSection {
    ui = "sap.ui",
    app = "sap.app",
    generic = "sap.ui.generic.app",
    ovp = "sap.ovp",
    ui5 = "sap.ui5",
    fiori = "sap.fiori"
}
export declare const GENERICAPPSETTINGS = "sap.ui.generic.app/settings";
export type SemanticColoringType = {
    /**
     * color contains the value of the color for the particular state
     */
    color: ChartColor;
    /**
     * The legend text for the color
     */
    legendText: string;
};
export type ColorPaletteMapEntryType = {
    /**
     * color contains the value of the color for the particular state
     */
    color: ChartColor;
    dimensionValue: string;
    /**
     * If the index property is maintained, legends will be positioned in that order
     */
    index?: number;
};
export declare enum ColorPaletteDefinitionType {
    SemanticColoring = "SemanticColoring",
    StableColoring = "StableColoring",
    MapDimensionValues = "MapDimensionValues"
}
/**
 * Semantic coloring, up to four colors can be defined
 */
export interface ColorPaletteSemanticColoringType {
    colorPaletteType: ColorPaletteDefinitionType.SemanticColoring;
    '0': SemanticColoringType;
    '1': SemanticColoringType;
    '2'?: SemanticColoringType;
    '3'?: SemanticColoringType;
}
/**
 * For donut charts, a specific color can be mapped to a particular dimension value, so that a stable coloring can be enabled
 */
export type ColorPaletteStableColoringType = {
    colorPaletteType: ColorPaletteDefinitionType.StableColoring;
    dimensionValueToColor: {
        [key: string]: string;
    };
};
/**
 * For columnn stack charts, rules can be defined to map a specific color to a particular dimension value
 */
export type ColorPaletteMapDimensionType = {
    colorPaletteType: ColorPaletteDefinitionType.MapDimensionValues;
    /**
     * For each dimension value to be colored, color and dimensionValue needs to be customized as a rule
     */
    dimensionSettings: {
        [key: string]: {
            [key: string]: ColorPaletteMapEntryType;
        };
    };
};
export type ColorPaletteType = ColorPaletteSemanticColoringType | ColorPaletteStableColoringType | ColorPaletteMapDimensionType;
export type Inbound = ManifestNamespace.Inbound;
export type Manifest = ManifestNamespace.SAPJSONSchemaForWebApplicationManifestFile;
export type ObjectStreamCardsSettingsDef = ManifestNamespace.ObjectStreamCardsSettingsDef;
export type SapUi5Routing = ManifestNamespace.Routing;
export type SapOvp = ManifestNamespace.JSONSchemaForSAPOVPNamespace;
export type SapOvpDefaultSpanDef = ManifestNamespace.DefaultSpanDef;
export type SapOvpPlotAreaDef = ManifestNamespace.PlotAreaDef;
export type SapOvpTimeAxisDef = ManifestNamespace.TimeAxisDef;
export type SapOvpTabSetting = ManifestNamespace.TabSetting & {
    colorPalette?: ColorPaletteType;
};
export type SappAppDataSource = ManifestNamespace.DataSource;
export interface SapAppDataSourceSettings extends ManifestNamespace.Setting, ManifestNamespace.Setting1 {
}
//# sourceMappingURL=Manifest.d.ts.map