import Vue, { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import { MPlusSkin } from '../plus/plus';
import { MAccordionGroupAPI } from './accordion.models';
export declare enum MAccordionSkin {
    Default = "default",
    Dark = "dark",
    DarkB = "dark-b",
    Light = "light",
    Plain = "plain"
}
export declare enum MAccordionIconPosition {
    Left = "left",
    Right = "right"
}
export declare enum MAccordionIconSize {
    Small = "small",
    Large = "large"
}
export interface AccordionGateway extends Vue {
    propId: string;
    propOpen: boolean;
    propDisabled: boolean;
}
export interface AccordionGroupGateway {
    skin: MAccordionSkin;
    disabled: boolean;
    concurrent: boolean;
    addAccordion(accordion: AccordionGateway): void;
    removeAccordion(id: string): void;
    closeAllAccordions(): any;
}
export declare const ACCORDION_CLOSEST_ELEMENTS: string;
export declare class MAccordion extends ModulVue implements AccordionGateway {
    groupRef?: MAccordionGroupAPI;
    readonly id?: string;
    readonly open: boolean;
    readonly disabled: boolean;
    readonly skin: MAccordionSkin;
    readonly iconPosition?: MAccordionIconPosition;
    readonly iconBorder: boolean;
    readonly iconSize?: MAccordionIconSize;
    readonly padding: boolean;
    readonly paddingHeader: boolean;
    readonly paddingBody: boolean;
    readonly keepContentAlive: boolean;
    readonly refAccordionHeader: HTMLElement;
    private uuid;
    private internalOpen;
    emitClick(event: Event): void;
    emitUpdateOpen(open: boolean): void;
    onOpenChange(open: boolean): void;
    get propDisabled(): boolean;
    get propId(): string;
    get idBodyWrap(): string;
    get classBody(): Object;
    get propOpen(): boolean;
    set propOpen(open: boolean);
    get headerTabindex(): number | undefined;
    get headerAriaLabel(): string | undefined;
    get isIconPositionLeft(): boolean;
    get isIconSizeLarge(): boolean;
    get deltaHeight(): number;
    get propSkin(): MAccordionSkin;
    get plusSkin(): MPlusSkin;
    get hasIconBorder(): boolean;
    hasContent(): boolean;
    toggleAccordion(event: Event): void;
    protected mounted(): void;
    protected beforeDestroy(): void;
    private get internalGroupRef();
    private isParentAccordionGroup;
}
declare const AccordionPlugin: PluginObject<any>;
export default AccordionPlugin;
//# sourceMappingURL=accordion.d.ts.map