import { Type } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { SdTabAction } from '../actions/tab-router.action';
import { SdTabComponentBuilder } from '../decorators/tab.decorator';
import { SdTabEvent } from '../events/tab-router.event';
import { SdTab } from '../models/tab-router.model';
import * as i0 from "@angular/core";
export declare class SdTabRouterService {
    #private;
    events: BehaviorSubject<SdTabEvent>;
    actions: BehaviorSubject<SdTabAction | undefined>;
    builders: BehaviorSubject<SdTabComponentBuilder[]>;
    currentTabChanges: BehaviorSubject<SdTab | undefined>;
    newTabs: BehaviorSubject<SdTab | undefined>;
    updateTabs: BehaviorSubject<SdTab | undefined>;
    constructor();
    addBuilder: (builder: SdTabComponentBuilder) => void;
    get currentTab(): SdTab | undefined;
    get currentKey(): string | null;
    setCurrentTab: (tab: SdTab) => void;
    pushEvent: (tab: SdTab, Event: Type<SdTabEvent>) => void;
    setOptions: () => void;
    close: (tab?: SdTab) => void;
    updateTab: (tab: SdTab) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdTabRouterService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SdTabRouterService>;
}
