import { ElementRef, EventEmitter, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import * as i0 from "@angular/core";
export declare type NcModeType = 'distance' | 'magnification';
export declare type NcThemeType = 'light' | 'dark';
export declare type NcDirectionType = 'horizontal' | 'vertical';
export declare type NcTooltipPositionType = 'top' | 'bottom' | 'left' | 'right';
export declare class DockComponent implements OnDestroy, OnChanges {
    private sanitizer;
    /** 图标尺寸 */
    ncSize: number;
    /** 鼠标到最远放大图标的距离 */
    ncDistance: number;
    /** 展示模式 */
    ncMode: NcModeType;
    /** 相对于ncSize放大或间隙的倍数 */
    ncMultiple: number;
    /** 主题 */
    ncTheme: NcThemeType;
    /** 方向 */
    ncDirection: NcDirectionType;
    /** 分割线 */
    ncDividerIndex: number[];
    /** 提示文本 */
    ncTooltip: string[];
    /** 提示文本位置 */
    ncTooltipPosition: NcTooltipPositionType;
    /** hover效果 */
    private _hover;
    set ncHover(val: boolean | string);
    get ncHover(): boolean;
    /** 图标列表 */
    ncItems: string[];
    /** 图标点击事件 */
    ncClick: EventEmitter<number>;
    dockContainer: ElementRef;
    private mouseXY;
    iconScales: number[];
    private isAnimating;
    private animationFrameId;
    constructor(sanitizer: DomSanitizer);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private resetIconScales;
    onMouseMove(event: MouseEvent): void;
    onMouseLeave(): void;
    private updateIconScales;
    onIconClick(index: number): void;
    /**
     * 检查项目是否为SVG内容
     */
    isSvgContent(item: string): boolean;
    /**
     * 返回安全处理后的SVG内容
     */
    getSanitizedSvg(svg: string): SafeHtml;
    static ɵfac: i0.ɵɵFactoryDeclaration<DockComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DockComponent, "nc-dock", never, { "ncSize": "ncSize"; "ncDistance": "ncDistance"; "ncMode": "ncMode"; "ncMultiple": "ncMultiple"; "ncTheme": "ncTheme"; "ncDirection": "ncDirection"; "ncDividerIndex": "ncDividerIndex"; "ncTooltip": "ncTooltip"; "ncTooltipPosition": "ncTooltipPosition"; "ncHover": "ncHover"; "ncItems": "ncItems"; }, { "ncClick": "ncClick"; }, never, never>;
}
