import { Signal } from '@angular/core'; import { UrlTree, Params, QueryParamsHandling, IsActiveMatchOptions } from '@angular/router'; import { Observable } from 'rxjs'; type NavigationOrientation = 'vertical' | 'horizontal'; type NavigationVerticalType = 'sidebar' | 'dockbar'; type NavigationHorizontalType = 'navbar' | 'flyout'; type NavigationType = NavigationVerticalType | NavigationHorizontalType; type NavigationCollapseTree = 'stairs' | 'straight'; type NavigationAppearance = 'flat' | 'border-rail'; type NavigationVerticalPosition = 'left' | 'right'; type NavigationHorizontalPosition = 'top' | 'bottom'; type NavigationPosition = NavigationVerticalPosition | NavigationHorizontalPosition; type NavigationFlyoutIconPosition = 'start' | 'end'; /** Bentuk visual tombol trigger flyout: `button` (pil), `link` (gaya tautan), `plain` (ghost). */ type NavigationFlyoutTriggerVariant = 'button' | 'link' | 'plain'; type NavigationDockbarMode = 'drawer' | 'sticky'; /** Icon Material Symbols bawaan ketika route aktif tidak menyediakan icon lain. */ declare const NAVIGATION_DOCKBAR_FALLBACK_ICON = "route"; type NavigationBadgeCount = number | null | undefined; type NavigationBadgeValueSource = NavigationBadgeCount | Signal | Observable | (() => NavigationBadgeCount); type NavigationBadgeAriaLabel = string | ((count: number) => string); /** Sumber badge generik yang dapat direferensikan navigation item atau route metadata. */ interface NavigationBadgeSource { readonly value: NavigationBadgeValueSource; readonly ariaLabel: NavigationBadgeAriaLabel; readonly classes?: string; } type NavigationBadgeContext = Readonly>; /** Metadata resmi yang dapat diletakkan pada `Route.data`. */ interface NavigationRouteData { readonly navigationIcon?: string | null; readonly navigationBadge?: string | null; readonly navigationLabel?: string | null; } /** Snapshot route aktif yang dipublikasikan adapter route context library. */ interface NavigationResolvedRouteContext { readonly url: string; readonly icon: string | null; readonly badge: string | null; readonly label: string | null; } /** Override opsional untuk route context dockbar. Nilai `true` memakai Router sepenuhnya. */ interface NavigationDockbarRouteConfig { readonly url?: string | null; readonly icon?: string | null; readonly badge?: string | null; readonly label?: string | null; readonly fallbackIcon?: string; } type NavigationDockbarRouteContext = boolean | NavigationDockbarRouteConfig; interface NavigationRegisterInput { readonly id: string; readonly orientation: NavigationOrientation; readonly type?: NavigationType | null; readonly position?: NavigationPosition | null; readonly collapsed?: boolean | null; readonly dockbarMode?: NavigationDockbarMode | null; } interface NavigationState { readonly id: string; readonly orientation: NavigationOrientation; readonly type: NavigationType; readonly position: NavigationPosition; readonly collapsed: boolean; readonly dockbarMode: NavigationDockbarMode; } type NavigationItemType = 'item' | 'basic' | 'aside' | 'group' | 'collapsible' | 'collapsable' | 'mega' | 'divider' | 'spacer'; type NavigationNormalizedItemType = 'item' | 'group' | 'collapsible' | 'mega' | 'divider' | 'spacer'; type NavigationLink = string | readonly unknown[] | UrlTree; interface NavigationItemClasses { readonly title?: string; readonly subtitle?: string; readonly icon?: string; /** Kelas untuk elemen klik (tombol/anchor) item. */ readonly wrapper?: string; /** Kelas untuk container `
  • ` group horizontal (flyout tab / navbar group). Per-group. */ readonly container?: string; } interface NavigationItemBadge { readonly title?: string; readonly classes?: string; /** Key generik yang dicari pada input `dockbar-badge`. */ readonly source?: string; } type NavigationVisibilityHandler = (item: NavigationItem) => boolean; type NavigationActionHandler = (item: NavigationItem) => void; interface NavigationItem { readonly id?: string; readonly type?: NavigationItemType; readonly title?: string; readonly subtitle?: string; readonly active?: boolean; readonly disabled?: boolean; readonly tooltip?: string; readonly classes?: NavigationItemClasses; readonly icon?: string; readonly badge?: NavigationItemBadge; readonly meta?: Record; readonly isHidden?: NavigationVisibilityHandler; readonly link?: NavigationLink; readonly href?: string; readonly fragment?: string; readonly preserveFragment?: boolean; readonly queryParams?: Params | null; readonly queryParamsHandling?: QueryParamsHandling | null; readonly externalLink?: boolean; readonly target?: '_blank' | '_self' | '_parent' | '_top' | string; readonly rel?: string; readonly exactMatch?: boolean; readonly isActiveMatchOptions?: IsActiveMatchOptions; readonly action?: NavigationActionHandler; readonly columns?: number; readonly children?: readonly NavigationItem[]; } interface NavigationNormalizedItem extends Omit { readonly key: string; readonly stateId: string; readonly panelId: string; readonly type: NavigationNormalizedItemType; readonly source: NavigationItem; readonly children: readonly NavigationNormalizedItem[]; } interface NavigationSelection { readonly item: NavigationItem; readonly key: string; readonly type: NavigationNormalizedItemType; readonly link?: NavigationLink; readonly external: boolean; } interface NavigationIconContext { readonly $implicit: string; readonly icon: string; readonly item: NavigationItem; readonly active: boolean; readonly orientation: NavigationOrientation; readonly level: number; } declare function normalizeUiNavItems(items: readonly NavigationItem[]): readonly NavigationNormalizedItem[]; /** Format visual count badge dockbar. Count nol atau invalid tidak dirender. */ declare function formatNavigationBadgeCount(value: NavigationBadgeCount): string | null; export { NAVIGATION_DOCKBAR_FALLBACK_ICON, formatNavigationBadgeCount, normalizeUiNavItems }; export type { NavigationActionHandler, NavigationAppearance, NavigationBadgeAriaLabel, NavigationBadgeContext, NavigationBadgeCount, NavigationBadgeSource, NavigationBadgeValueSource, NavigationCollapseTree, NavigationDockbarMode, NavigationDockbarRouteConfig, NavigationDockbarRouteContext, NavigationFlyoutIconPosition, NavigationFlyoutTriggerVariant, NavigationHorizontalPosition, NavigationHorizontalType, NavigationIconContext, NavigationItem, NavigationItemBadge, NavigationItemClasses, NavigationItemType, NavigationLink, NavigationNormalizedItem, NavigationNormalizedItemType, NavigationOrientation, NavigationPosition, NavigationRegisterInput, NavigationResolvedRouteContext, NavigationRouteData, NavigationSelection, NavigationState, NavigationType, NavigationVerticalPosition, NavigationVerticalType, NavigationVisibilityHandler };