import { EuiBreadcrumb , IconType } from '@elastic/eui' ; import { Observable } from 'rxjs' ; import { MountPoint } from '../types' ; import { ChromeDocTitle } from './doc_title' ; import { ChromeNavControls } from './nav_controls' ; import { ChromeNavLinks , ChromeNavLink } from './nav_links' ; import { ChromeRecentlyAccessed } from './recently_accessed' ; import { ChromeHelpExtensionMenuLink } from './ui/header/header_help_menu' ; public export interface ChromeBadge { text : string ; tooltip : string ; iconType ? : IconType ; } public export type ChromeBreadcrumb = EuiBreadcrumb ; public export interface ChromeBreadcrumbsAppendExtension { content : MountPoint < HTMLDivElement > ; } public export interface ChromeUserBanner { content : MountPoint < HTMLDivElement > ; } public export interface ChromeHelpExtension { /**
     * Provide your plugin's name to create a header for separation
     */ appName : string ; /**
     * Creates unified links for sending users to documentation, GitHub, Discuss, or a custom link/button
     */ links ? : ChromeHelpExtensionMenuLink [ ] ; /**
     * Custom content to occur below the list of links
     */ content ? : ( element : HTMLDivElement ) => ( ) => void ; } remarks example example public export interface ChromeStart { /** {@inheritdoc ChromeNavLinks} */ navLinks : ChromeNavLinks ; /** {@inheritdoc ChromeNavControls} */ navControls : ChromeNavControls ; /** {@inheritdoc ChromeRecentlyAccessed} */ recentlyAccessed : ChromeRecentlyAccessed ; /** {@inheritdoc ChromeDocTitle} */ docTitle : ChromeDocTitle ; /**
     * Get an observable of the current visibility state of the chrome.
     */ getIsVisible$ ( ) : Observable < boolean > ; /**
     * Set the temporary visibility for the chrome. This does nothing if the chrome is hidden
     * by default and should be used to hide the chrome for things like full-screen modes
     * with an exit button.
     */ setIsVisible ( isVisible ) : void ; /**
     * Get an observable of the current badge
     */ getBadge$ ( ) : Observable < ChromeBadge | undefined > ; /**
     * Override the current badge
     */ setBadge ( badge ? ) : void ; /**
     * Get an observable of the current list of breadcrumbs
     */ getBreadcrumbs$ ( ) : Observable < ChromeBreadcrumb [ ] > ; /**
     * Override the current set of breadcrumbs
     */ setBreadcrumbs ( newBreadcrumbs ) : void ; /**
     * Get an observable of the current extension appended to breadcrumbs
     */ getBreadcrumbsAppendExtension$ ( ) : Observable < ChromeBreadcrumbsAppendExtension | undefined > ; /**
     * Mount an element next to the last breadcrumb
     */ setBreadcrumbsAppendExtension ( breadcrumbsAppendExtension ? ) : void ; /**
     * Get an observable of the current custom nav link
     */ getCustomNavLink$ ( ) : Observable < Partial < ChromeNavLink > | undefined > ; /**
     * Override the current set of custom nav link
     */ setCustomNavLink ( newCustomNavLink ? ) : void ; /**
     * Get an observable of the current custom help conttent
     */ getHelpExtension$ ( ) : Observable < ChromeHelpExtension | undefined > ; /**
     * Override the current set of custom help content
     */ setHelpExtension ( helpExtension ? ) : void ; param url setHelpSupportUrl ( url ) : void ; /**
     * Get an observable of the current locked state of the nav drawer.
     */ getIsNavDrawerLocked$ ( ) : Observable < boolean > ; remarks setHeaderBanner ( headerBanner ? ) : void ; /**
     * Get an observable of the current header banner presence state.
     */ hasHeaderBanner$ ( ) : Observable < boolean > ; } internal export interface InternalChromeStart extends ChromeStart { internal getHeaderComponent ( ) : JSX . Element ; internal getBodyClasses$ ( ) : Observable < string [ ] > ; }