import { EnterpriseGlossaryTermComponentBaseStyles, VueComponentBase } from "../..";
import { TermUISettings, IIcon, GuidValue } from "../../../models";
import { Term } from "../../../sp";
import { OmniaUxLocalization } from "../../UxModels";
import "./EnterpriseGlossaryTermComponentBase.css";
export interface EnterpriseGlossaryTermComponentBaseProps {
    styles?: typeof EnterpriseGlossaryTermComponentBaseStyles;
}
export interface EnterpriseGlossaryTermAdditonalClickHander {
    clickableIcon?: IIcon;
    onClick: (e: Event) => void;
}
export declare abstract class EnterpriseGlossaryTermComponentBase extends VueComponentBase<EnterpriseGlossaryTermComponentBaseProps> {
    styles?: typeof EnterpriseGlossaryTermComponentBaseStyles;
    uxLoc: OmniaUxLocalization;
    abstract getTermTitle(): string;
    abstract getTerm(): Term;
    abstract getTermUISettings(): TermUISettings;
    /** Define method when click the mapped enterprise glossary term */
    protected enterpriseGlossaryTermHandlerFunc: (e: Event) => void;
    protected appendItems?: {
        termId: GuidValue;
        onClick: (term: Term) => void;
        title: string;
        icon?: IIcon;
    }[];
    protected availableToRenderTooltip?: (items: Array<{
        termId: GuidValue;
        onClick: (term: Term) => any;
        title: string;
    }>) => {
        [termId: string]: {
            title: string;
            icon: IIcon;
        };
    }[];
    /** Define method when click the close icon on term. Null is to hide the close icon */
    protected onClickCloseIconFunc: () => void;
    protected additionalClickHandler?: EnterpriseGlossaryTermAdditonalClickHander;
    protected enterpriseGlossaryTermBaseCompStyles: {
        actionMenuItem?: any;
        actionMenuItemContent?: any;
        chip?: any;
        chipIconWrapper?: any;
        chipIcon?: any;
        clickableIconWrapper?: any;
        clickableIcon?: any;
    };
    protected additionalMenus: any[];
    constructor();
    created(): void;
    protected showOverlay(): void;
    private onClickTerm;
    protected renderEnterpriseGlossaryTerm(): JSX.Element;
}
