import { OnChanges, ChangeDetectorRef, EventEmitter, OnInit, SimpleChanges, SimpleChange, OnDestroy, ElementRef, Renderer2, TemplateRef } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { ReuseTabService } from './reuse-tab.service';
import { ReuseTabMatchMode, ReuseItem, ReuseContextI18n, ReuseContextCloseEvent, CloseType } from './interface';
import { NzDropdownService } from 'ng-zorro-antd';
import { LocalizationService } from 'yoyo-ng-module/abp/localization/localization.service';
export declare class ReuseTabComponent implements OnInit, OnChanges, OnDestroy {
    srv: ReuseTabService;
    private cd;
    private router;
    private route;
    private el;
    private render;
    private doc;
    private localizationService;
    private nzDropdownService;
    private sub$;
    private i18n$;
    list: ReuseItem[];
    item: ReuseItem;
    pos: number;
    /** 设置匹配模式 */
    mode: ReuseTabMatchMode;
    /** 选项文本国际化 */
    i18n: ReuseContextI18n;
    /** 是否Debug模式 */
    debug: any;
    private _debug;
    /** 允许最多复用多少个页面 */
    max: any;
    private _max;
    /** 排除规则，限 `mode=URL` */
    excludes: RegExp[];
    /** 允许关闭 */
    allowClose: any;
    private _allowClose;
    /** 是否固定 */
    fixed: any;
    private _fixed;
    /** 总是显示当前页 */
    showCurrent: any;
    private _showCurrent;
    /** 切换时回调 */
    change: EventEmitter<ReuseItem>;
    /** 关闭回调 */
    close: EventEmitter<ReuseItem>;
    /**
     * 右键菜单服务
     */
    private _contextMenuDropdown;
    constructor(srv: ReuseTabService, cd: ChangeDetectorRef, router: Router, route: ActivatedRoute, el: ElementRef, render: Renderer2, doc: any, localizationService: LocalizationService, nzDropdownService: NzDropdownService);
    private genTit(title);
    private genList(notify?);
    private visibility();
    cmChange(res: ReuseContextCloseEvent): void;
    refStatus(dc?: boolean): void;
    to(e: Event, index: number): void;
    _close(e: Event, idx: number, includeNonCloseable: boolean): boolean;
    ngOnInit(): void;
    private setClass();
    ngOnChanges(changes: {
        [P in keyof this]?: SimpleChange;
    } & SimpleChanges): void;
    ngOnDestroy(): void;
    l(key: string, ...args: any[]): string;
    /**
   * 打开右键菜单
   * @param $event 鼠标事件
   * @param template 创建右键的模板内容
   */
    openContextMenu($event: MouseEvent, template: TemplateRef<void>): void;
    /**
     * 右键菜单项点击事件
     * @param $event 当前项点击事件
     * @param closeType 关闭类型
     * @param item 当前路由复用项
     */
    contextMenuItemClick($event: MouseEvent, closeType: CloseType, item: ReuseItem): void;
}
