import { FlexibleConnectedPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
import { NgModel } from '@angular/forms';
import { DevConfigService } from 'ng-devui/utils';
import { Subject } from 'rxjs';
import { Mention, MentionOnSearchTypes, MentionPositionType } from './mention.types';
import * as i0 from "@angular/core";
export declare class MentionDirective implements OnInit, OnChanges, AfterViewInit, OnDestroy {
    private ngModelInstance;
    private el;
    private viewContainerRef;
    private cdr;
    private overlay;
    private devConfigService;
    mentionNotFoundContent: string;
    mentionSuggestions: any[];
    mentionLoading: boolean;
    mentionTrigger: string[];
    mentionSeparator: string;
    mentionSeparatorToggle: {
        prefix: boolean;
        suffix: boolean;
    };
    mentionPosition: MentionPositionType;
    mentionHeaderTemplate: TemplateRef<any>;
    mentionItemTemplate: TemplateRef<any>;
    endWithCursorPos: boolean;
    mentionValueParse: (value: string) => string;
    mentionSelectItem: EventEmitter<any>;
    mentionSearchChange: EventEmitter<MentionOnSearchTypes>;
    mentionAfterMentionInit: EventEmitter<MentionDirective>;
    showGlowStyle: boolean;
    get hasGlowStyle(): boolean;
    isOpen: boolean;
    activeIndex: number;
    unsubscribe$: Subject<unknown>;
    defaultNotFoundText: string;
    get nativeElement(): any;
    private value;
    private previousValue;
    private cursorMention;
    private cursorMentionStart;
    private cursorMentionEnd;
    private cursorEnd;
    private overlayRef;
    private portal?;
    private positionStrategy;
    private mentionRef;
    private filterSuggestions;
    constructor(ngModelInstance: NgModel, el: ElementRef, viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef, overlay: Overlay, devConfigService: DevConfigService);
    onKeyDown(event: any): void;
    onClick(e: any): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    resetMention(emit?: boolean): void;
    checkMention(): void;
    hideMention(): void;
    showMention(): void;
    attachOverlay(): void;
    getOverlayConfig(): OverlayConfig;
    getOverlayPosition(target: any): FlexibleConnectedPositionStrategy;
    updatePositions(): void;
    suggestionsFilter(value: string, emit: boolean): void;
    setMentionData(): void;
    selectSuggestion(suggestion: any): void;
    insertMention(mention: Mention): void;
    setPreviousItemActive(): void;
    setNextItemActive(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MentionDirective, [{ optional: true; host: true; self: true; }, null, null, null, null, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MentionDirective, "[dMention]", ["dMention"], { "mentionNotFoundContent": { "alias": "mentionNotFoundContent"; "required": false; }; "mentionSuggestions": { "alias": "mentionSuggestions"; "required": false; }; "mentionLoading": { "alias": "mentionLoading"; "required": false; }; "mentionTrigger": { "alias": "mentionTrigger"; "required": false; }; "mentionSeparator": { "alias": "mentionSeparator"; "required": false; }; "mentionSeparatorToggle": { "alias": "mentionSeparatorToggle"; "required": false; }; "mentionPosition": { "alias": "mentionPosition"; "required": false; }; "mentionHeaderTemplate": { "alias": "mentionHeaderTemplate"; "required": false; }; "mentionItemTemplate": { "alias": "mentionItemTemplate"; "required": false; }; "endWithCursorPos": { "alias": "endWithCursorPos"; "required": false; }; "mentionValueParse": { "alias": "mentionValueParse"; "required": false; }; "showGlowStyle": { "alias": "showGlowStyle"; "required": false; }; }, { "mentionSelectItem": "mentionSelectItem"; "mentionSearchChange": "mentionSearchChange"; "mentionAfterMentionInit": "mentionAfterMentionInit"; }, never, never, false, never>;
}
