import { AfterContentInit, Injector, QueryList } from '@angular/core';
import { DynamicComponentRefProvider, StatePersistence } from '@wm/core';
import { StylableComponent } from '@wm/components/base';
import { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';
import * as i0 from "@angular/core";
export declare class AccordionDirective extends StylableComponent implements AfterContentInit {
    static initializeProps: void;
    defaultpaneindex: number;
    closeothers: boolean;
    statehandler: any;
    private statePersistence;
    private activePaneIndex;
    private activePane;
    private promiseResolverFn;
    private dynamicComponentProvider;
    private _dynamicContext;
    private dynamicPaneIndex;
    private dynamicPanes;
    fieldDefs: any;
    panes: QueryList<AccordionPaneComponent>;
    constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, explicitContext: any);
    /**
     * AccordionPane children components invoke this method to communicate with the parent
     * if isExpand is true and when closeothers is true, all the other panes are collapsed
     * if the evt argument is defined on-change callback will be invoked.
     * updates the activePane index property
     * @param {AccordionPaneComponent} paneRef
     * @param {boolean} isExpand
     * @param {Event} evt
     */
    notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event): void;
    /**
     * This method is used to register the dynamic panes.
     * After all panes are initialzed, update the querylist manually based on index.
     * @param paneRef - refrence of the tabpane
     */
    registerDynamicPane(paneRef: any): void;
    /**
     * This method is to add the tabpane dynamically
     * @param tabpanes - list of tabpanes
     */
    addPane(tabpanes: any): any[];
    /**
     * This method is to remove the tabpane
     * @param paneName - name of the pane
     */
    removePane(paneName: any): void;
    private isValidPaneIndex;
    private getPaneRefByName;
    private getPaneIndexByRef;
    private getPaneRefByIndex;
    private closePanesExcept;
    private expandPane;
    private onDataChange;
    onPropertyChange(key: string, nv: any, ov?: any): void;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionDirective, [null, null, null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AccordionDirective, "div[wmAccordion]", ["wmAccordion"], {}, {}, ["panes"], never, false, never>;
}
