import type { HeaderSections } from './ObjectPageHeaderSection';
import type { ActionAfterExecutionConfiguration } from '../webapp/manifest/ManifestSettings';
import type { CustomActionOP, CustomActionPositionOP } from './CustomAction';
export interface ActionAfterExecutionConfigurationObjectPageHeader extends ActionAfterExecutionConfiguration {
}
export interface CustomHeaderActionPositionOP extends CustomActionPositionOP {
}
export interface CustomHeaderActionOP extends CustomActionOP {
    position?: CustomHeaderActionPositionOP;
}
export interface ObjectPageHeaderAction {
    /**
     * Settings that control the behavior after creating a new entry.
     */
    afterExecution?: ActionAfterExecutionConfigurationObjectPageHeader;
}
export interface SemanticObjectPropertyMapping {
    [id: string]: string;
}
/**
 * @isViewNode true
 */
export interface AdditionalSemanticObject {
    /**
     * Define the list of semantic object links displayed under the Related Apps button.
     */
    allowedActions?: string[];
    /**
     * Determines the navigation actions of the semantic object that are hidden from under the Related Apps button.
     */
    unavailableActions?: string[];
    /**
     * Mapping, defined for a semantic object, consists of key value pairs. The key defines the way in which the source application (object page) passes the context. The value represents the term used for the same entity in the target app.
     */
    mapping?: SemanticObjectPropertyMapping;
}
/**
 * Adds additional links under the Related Apps button by specifying semantic objects.
 *
 * @isViewNode true
 */
export interface AdditionalSemanticObjects {
    [id: string]: AdditionalSemanticObject;
}
export interface RelatedApps {
    /**
     * Set showRelatedApps to true to show the navigation button for related apps.
     */
    showRelatedApps?: boolean;
    /**
     * Additional Semantic Objects
     */
    additionalSemanticObjects: AdditionalSemanticObjects;
}
export interface ObjectPageHeaderActionGroup {
    [id: string]: ObjectPageHeaderAction;
}
export interface ObjectPageHeaderActions {
    [id: string]: ObjectPageHeaderAction | CustomHeaderActionOP | RelatedApps | ObjectPageHeaderActionGroup;
}
/**
 * Header
 *
 * @isViewNode true
 */
export interface ObjectPageHeader {
    /**
     * Set editableHeaderContent to true to make the header fields editable.
     */
    editableHeaderContent?: boolean;
    /**
     * Set visible to true to make the header visible.
     */
    visible?: boolean;
    /**
     * Determines whether the anchor bar is displayed.
     */
    anchorBarVisible?: boolean;
    actions?: ObjectPageHeaderActions;
    sections?: HeaderSections;
}
//# sourceMappingURL=ObjectPageHeader.d.ts.map