import type { ColorPaletteType, ObjectStreamCardsSettingsDef, SapOvpPlotAreaDef, SapOvpTabSetting, SapOvpTimeAxisDef } from '../../common';
export interface DefaultSpanObject {
    /**
     * Represents the number of grid columns.
     */
    cols: number;
    /**
     * Represents the number of grid rows.
     */
    rows: number;
    /**
     * Determines if only the header part of a card is shown in the resizable layout.
     */
    showOnlyHeader?: boolean;
    /**
     * Sets the number of lines for the title row. The maximum is 3.
     */
    minimumTitleRow?: number;
    /**
     * Sets the number of lines for the subtitle row. The maximum is 2.
     */
    minimumSubTitleRow?: number;
}
export interface CommonCardSettings {
    /**
     * Represents the dominant entity set that will be displayed in the given card.
     */
    entitySet?: string;
    /**
     * The language-dependent title of the card, used in the card header.
     *
     * @i18nClassification TIT: Title of the card, used in the card header
     */
    title: string;
    /**
     * The language-dependent subtitle of the card, used in the card header.
     *
     * @i18nClassification TIT: Subtitle of the card, used in the card header
     */
    subTitle?: string;
    /**
     * Represents the annotation path.
     */
    annotationPath?: string;
    /**
     * Represents the identification annotation path.
     */
    identificationAnnotationPath?: string;
    /**
     * Represents the data point annotation path.
     */
    dataPointAnnotationPath?: string;
    /**
     * Represents the selection annotation path.
     */
    selectionAnnotationPath?: string;
    /**
     * Represents the presentation annotation path.
     */
    presentationAnnotationPath?: string;
    /**
     * Represents the selection presentation annotation path.
     */
    selectionPresentationAnnotationPath?: string;
    /**
     * Represents the KPI annotation path.
     */
    kpiAnnotationPath?: string;
    /**
     * The category of the card, as used in the card header.
     */
    category?: string;
    /**
     * To load cards with specific requirements, define a default size as part of the card definition in the descriptor file.
     */
    defaultSpan?: DefaultSpanObject | 'auto';
    /**
     * Define an authorization check at card level.
     */
    requireAppAuthorization?: string;
    /**
     * Represents the card with view switch control.
     */
    tabs?: SapOvpTabSetting[];
    /**
     * Determines if the $Select parameter shall be added to data fetch requests.
     */
    addODataSelect?: boolean;
    /**
     * Defines the property by which the list is sorted.
     */
    sortBy?: string;
    /**
     * Sort order (ascending or descending).
     */
    sortOrder?: 'ascending' | 'descending';
    /**
     * Represents the dynamic subtitle annotation path.
     */
    dynamicSubtitleAnnotationPath?: string;
    /**
     * Represents the flag to indicate the use of object number/smart field.
     */
    enableLocaleCurrencyFormatting?: boolean;
    /**
     * Determines if filters are shown in card headers.
     */
    showFilterInHeader?: boolean;
    /**
     * Determines if sorting is shown in card headers.
     */
    showSortingInHeader?: boolean;
    /**
     * Custom parameters for intent-based navigation to the target application.
     * Enter the name of the custom parameter function defined in your custom controller file.
     */
    customParams?: string;
}
export declare enum ChartCardType {
    cardBubble = "cardBubble",
    cardchartsline = "cardchartsline",
    cardchartsdonut = "cardchartsdonut"
}
export declare enum CardTemplateType {
    analytical = "sap.ovp.cards.charts.analytical",
    analyticalv4 = "sap.ovp.cards.v4.charts.analytical",
    list = "sap.ovp.cards.list",
    listv4 = "sap.ovp.cards.v4.list",
    linklist = "sap.ovp.cards.linklist",
    linklistv4 = "sap.ovp.cards.v4.linklist",
    table = "sap.ovp.cards.table",
    tablev4 = "sap.ovp.cards.v4.table",
    stack = "sap.ovp.cards.stack"
}
export declare const cardTemplateTypeMap: {
    'sap.ovp.cards.charts.analytical': string;
    'sap.ovp.cards.v4.charts.analytical': string;
    'sap.ovp.cards.list': string;
    'sap.ovp.cards.v4.list': string;
    'sap.ovp.cards.linklist': string;
    'sap.ovp.cards.v4.linklist': string;
    'sap.ovp.cards.table': string;
    'sap.ovp.cards.v4.table': string;
    'sap.ovp.cards.stack': string;
};
export declare const cardTemplateSettingsMap: {
    'sap.ovp.cards.charts.analytical': string;
    'sap.ovp.cards.v4.charts.analytical': string;
};
export declare enum CardSettingsType {
    analyticalCardSettings = "analyticalCardSettings",
    analyticalCardSettingsv4 = "analyticalCardSettingsv4",
    listCardSettings = "listCardSettings",
    listCardSettingsv4 = "listCardSettingsv4",
    stackCardSettings = "stackCardSettings",
    linkListCardSettings = "linkListCardSettings",
    tableCardSettings = "tableCardSettings",
    tableCardSettingsv4 = "tableCardSettingsv4"
}
export declare enum MeasureAggregateValues {
    average = "average",
    max = "max",
    min = "min",
    sum = "sum",
    count = "$count"
}
export interface MeasureAggregateSettings {
    Axis1?: MeasureAggregateValues;
    Axis2?: MeasureAggregateValues;
    Axis3?: MeasureAggregateValues;
}
/**
 * Custom Card
 *
 * @isViewNode true
 */
export interface CustomCard {
    /**
     * Represents the model for the card
     */
    model: string;
    /**
     * Represents the card component path to use for this card.
     *
     * @TJS-pattern ^(?!(sap.ovp.cards.charts.analytical|sap.ovp.cards.v4.charts.analytical|sap.ovp.cards.linklist|sap.ovp.cards.v4.linklist|sap.ovp.cards.list|sap.ovp.cards.v4.list|sap.ovp.cards.stack|sap.ovp.cards.table|sap.ovp.cards.v4.table)$).*$
     */
    template: string;
    /**
     * Represents the properties that are passed to the custom card.
     */
    settings?: CustomCardSettings;
}
/**
 * List Card
 *
 * @isViewNode true
 * @controlProperty template
 */
export interface ListCard {
    /**
     * Represents the model for the list card.
     */
    model: string;
    /**
     * Represents the card component path to use.
     */
    template: CardTemplateType.list | CardTemplateType.listv4;
    /**
     * Represents the properties that are passed to the list card.
     */
    settings?: ListCardSettings;
}
/**
 * Stack Card
 *
 * @isViewNode true
 * @controlProperty template
 */
export interface StackCard {
    /**
     * Represents the model for the card.
     */
    model: string;
    /**
     * Represents the component path to use for this card.
     */
    template: CardTemplateType.stack;
    /**
     * Represents the properties that are passed to the stack card.
     */
    settings?: StackCardSettings;
}
/**
 * Link List Card
 *
 * @isViewNode true
 * @controlProperty template
 */
export interface LinklistCard {
    /**
     * Represents the model for the link list card.
     */
    model?: string;
    /**
     * Represents the component path to use for this card.
     */
    template: CardTemplateType.linklist | CardTemplateType.linklistv4;
    /**
     * Represents the properties that are passed to the link list card.
     */
    settings?: LinkListCardSettings;
}
/**
 * Table Card
 *
 * @isViewNode true
 * @controlProperty template
 */
export interface TableCard {
    /**
     * Represents the model for the table card.
     */
    model: string;
    /**
     * Represents the component path to use for this card.
     */
    template: CardTemplateType.table | CardTemplateType.tablev4;
    /**
     * Represents the properties that are passed to the table card.
     */
    settings?: TableCardSettings;
}
/**
 * Analytical Card
 *
 * @isViewNode true
 * @controlProperty template
 */
export interface AnalyticalCard {
    /**
     * Represents the model for the Analytical Card
     */
    model: string;
    /**
     * Represents the component path to use for this card.
     */
    template: CardTemplateType.analytical | CardTemplateType.analyticalv4;
    /**
     * Represents the properties that are passed to the analytical card.
     */
    settings?: AnalyticalCardSettings | AnalyticalCardSettingsv4;
}
export type CardNavigationType = 'dataPointNav' | 'chartNav' | 'headerNav' | 'noHeaderNav';
/**
 * @displayName settings
 */
export type CustomCardSettings = CommonCardSettings;
/**
 * @displayName settings
 */
export interface AnalyticalCardSettings extends CommonCardSettings {
    /**
     * Represents the chart annotation path.
     */
    chartAnnotationPath?: string;
    /**
     * Represents the flag to indicate priority of number formatting over sap text.
     */
    ignoreSapText?: boolean;
    /**
     * Represents the configuration to alter the navigation mode.
     */
    navigation?: CardNavigationType;
    /**
     * Represents things like people, number of items.
     */
    valueSelectionInfo?: string;
    /**
     * This property is responsible for setting specific chart settings.
     */
    chartProperties?: {
        plotArea?: SapOvpPlotAreaDef;
        timeAxis?: SapOvpTimeAxisDef;
    };
    /**
     * Color palette for semantic coloring.
     *
     * @controlProperty colorPaletteType
     */
    colorPalette?: ColorPaletteType;
    /**
     * Enables the configuration of an analytical card with a column stack chart to map the dimension values to specific colors.
     */
    bEnableStableColors?: boolean;
}
/**
 * @displayName settings
 */
export interface AnalyticalCardSettingsv4 extends AnalyticalCardSettings {
    /**
     *
     */
    measureAggregate?: MeasureAggregateSettings;
}
export declare enum ListFlavorType {
    standard = "standard",
    bar = "bar",
    carousel = "carousel"
}
export declare enum ListTypeType {
    extended = "extended",
    condensed = "condensed"
}
export declare enum SortOrderType {
    ascending = "ascending",
    descending = "descending"
}
/**
 * @displayName settings
 */
export interface ListCardSettings extends CommonCardSettings {
    /**
     * Represents the flavor of the list to use in this card.
     */
    listFlavor?: ListFlavorType;
    /**
     * Represents the type of list to use for this card.
     * The list can be extended to display more information or condensed to take up less space.
     */
    listType?: ListTypeType;
    /**
     * Flag for show line item detail in list and table card.
     */
    showLineItemDetail?: boolean;
    /**
     * Flag for enabling images in a condensed list card.
     */
    imageSupported?: boolean;
    /**
     * Represents things like people, number of items.
     */
    valueSelectionInfo?: string;
}
/**
 * @displayName settings
 */
export interface StackCardSettings extends CommonCardSettings {
    /**
     * Represents the user defined string in placeholder card.
     */
    itemText?: string;
    /**
     * The navigation property used to display information from a secondary entity set.
     */
    objectStreamCardsNavigationProperty?: string;
    /**
     * Configures additional settings for the cards displayed in the object stream.
     */
    objectStreamCardsSettings?: ObjectStreamCardsSettingsDef;
}
/**
 * @displayName settings
 */
export interface TableCardSettings extends CommonCardSettings {
    /**
     * Flag for showing line item details in list and table cards.
     */
    showLineItemDetail?: boolean;
    /**
     * Represents things like people, number of items.
     */
    valueSelectionInfo?: string;
}
export declare enum LinkListFlavorType {
    standard = "standard",
    carousel = "carousel"
}
/**
 * @displayName settings
 */
export interface LinkListCardSettings extends CommonCardSettings {
    /**
     * listFlavor represents the flavor of the list to use in this card.
     */
    listFlavor?: LinkListFlavorType;
    /**
     * headerAnnotationPath represents the path to a HeaderInfo annotation.
     */
    headerAnnotationPath?: string;
    /**
     * staticContent represents the content of a static link list card.
     */
    staticContent?: StaticContent[];
}
export interface StaticContent {
    /**
     * The language-dependent title of the static content.
     *
     * @i18nClassification TIT: Title of the static content
     */
    title: string;
    /**
     * The language-dependent subtitle of the static content.
     *
     * @i18nClassification TIT: Subtitle of the static content
     */
    subTitle?: string;
    /**
     * The URI for the image of the static content.
     */
    imageUri?: string;
    /**
     * The URI for the target of the static content.
     */
    targetUri?: string;
    /**
     * The alternative text for the image of the static content.
     *
     * @i18nClassification ALT: The alternative text for the image of the static content.
     */
    imageAltText?: string;
    /**
     * Used to provide intent-based navigation.
     */
    semanticObject?: string;
    /**
     * Used to provide intent based navigation.
     */
    action?: string;
    /**
     * Open static content in a new window.
     */
    openInNewWindow?: boolean;
}
//# sourceMappingURL=Card.d.ts.map