import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import { MPopperPlacement } from '../popper/popper';
import { MPopup } from '../popup/popup';
import './option.scss';
export declare abstract class BaseOption extends ModulVue {
}
export interface MOptionInterface {
    hasIcon: boolean;
    maxWidth: string;
    checkIcon(el: boolean): void;
    close(): void;
}
export declare enum MOptionsSkin {
    Light = "over-light",
    Dark = "over-dark",
    Mixed = "over-mixed"
}
export declare class MOption extends BaseOption implements MOptionInterface {
    readonly placement: MPopperPlacement;
    readonly skin: MOptionsSkin;
    readonly title: string;
    readonly ariaLabel?: string;
    readonly disabled: boolean;
    readonly size: string;
    readonly scroll: boolean;
    maxWidth: string;
    readonly refMenu?: HTMLElement;
    readonly refPopup?: MPopup;
    hasIcon: boolean;
    isCloseButtonVisible: boolean;
    private id;
    private lastItemFocus?;
    private open;
    private isOutsideClickDetected;
    emitOpen(): void;
    emitClose(): void;
    emitClick(event: MouseEvent): void;
    checkIcon(icon: boolean): void;
    close(): void;
    onCloseButtonFocus(): void;
    onCloseButtonBlur(): void;
    onClickOutside(): void;
    get optionMaxWidth(): string;
    get menuMaxHeight(): string | undefined;
    get isSkinMixed(): boolean;
    get iconButtonSkin(): string | undefined;
    protected mounted(): void;
    protected beforeDestroy(): void;
    private closeOnEscape;
}
declare const OptionPlugin: PluginObject<any>;
export default OptionPlugin;
//# sourceMappingURL=option.d.ts.map