import * as i0 from '@angular/core'; import { InjectionToken, Type, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core'; import { Color } from '@sdcorejs/utils/models'; import { Subject, BehaviorSubject } from 'rxjs'; import { CdkDragDrop } from '@angular/cdk/drag-drop'; interface SdTabInfo { name: string; icon?: string; tooltip?: string; color?: Color; } interface SdTab { component: Type; injector?: any; key: string; isActive: boolean; url: string; params?: Record; queryParams?: Record; data?: Record; tabInfoChanges: Subject; beforeClose?: () => boolean | Promise; } declare const SD_TAB: InjectionToken; declare class SdTabRouterNavComponent { tabRouterNav: i0.Signal | undefined>; tabs: i0.InputSignal; mode: 'default' | 'compact'; cdRef: ChangeDetectorRef; elementRef: ElementRef; onResize(): void; checkUI: () => void; onDrop: (event: CdkDragDrop) => void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class SdTabRouterOutletComponent implements OnDestroy { #private; disabled: i0.InputSignalWithTransform; tabRouterNav: i0.Signal; tabs: i0.WritableSignal; constructor(); ngOnDestroy(): void; tabTrackBy: (index: number, tab: SdTab) => string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface SdTabAction { type: 'close'; tab: SdTab; } interface SdTabComponentArgs { url?: string; params?: any; queryParams?: any; data?: Record; } declare interface SdTabComponentBuilder { component: Type; name: string | ((args: SdTabComponentArgs) => string); icon?: string | ((args: SdTabComponentArgs) => string); tooltip?: string | ((args: SdTabComponentArgs) => string); color?: Color | ((args: SdTabComponentArgs) => Color); } declare function SdTabComponent(builder: SdTabComponentBuilder): (constructor: T) => void; declare class SdTabBase { #private; constructor(tab: SdTab | undefined); get tab(): SdTab | undefined; } declare class SdTabActivated extends SdTabBase { } declare class SdTabDeactivated extends SdTabBase { } declare type SdTabEvent = SdTabActivated | SdTabDeactivated; declare class SdTabRouterService { #private; events: BehaviorSubject; actions: BehaviorSubject; builders: BehaviorSubject; currentTabChanges: BehaviorSubject; newTabs: BehaviorSubject; updateTabs: BehaviorSubject; addBuilder: (builder: SdTabComponentBuilder) => void; get currentTab(): SdTab | undefined; get currentKey(): string | null; setCurrentTab: (tab: SdTab) => void; pushEvent: (tab: SdTab, Event: Type) => void; setOptions: () => void; close: (tab?: SdTab) => void; updateTab: (tab: SdTab) => void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export { SD_TAB, SdTabComponent, SdTabRouterOutletComponent, SdTabRouterService }; export type { SdTab, SdTabComponentArgs, SdTabComponentBuilder, SdTabInfo };