import { ComponentFactoryResolver, ElementRef, EventEmitter, QueryList, ViewContainerRef } from '@angular/core';
import { IntegralUIBaseComponent, IntegralUIBaseService, IntegralUIExpandMode } from './integralui.core';
import { IntegralUICommonService } from '../services/integralui.common.service';
import { IntegralUIDataService } from '../services/integralui.data.service';
import { IntegralUIGroupBox } from './integralui.groupbox';
import * as i0 from "@angular/core";
export declare class IntegralUIAccordion extends IntegralUIBaseComponent {
    protected dataService: IntegralUIDataService;
    protected elemRef: ElementRef;
    protected commonService?: IntegralUICommonService;
    protected cmpResolver?: ComponentFactoryResolver;
    protected baseService?: IntegralUIBaseService;
    private numGroups;
    contentList: QueryList<IntegralUIGroupBox>;
    contentRef: ViewContainerRef;
    private groupList;
    private currentSelection;
    private currentSelectedIndex;
    private selectedComponent;
    private prevComponent;
    private removeIndex;
    private toggleTimer;
    private tRef;
    expandMode: IntegralUIExpandMode;
    groups: Array<any>;
    set selectedIndex(value: number);
    get selectedIndex(): number;
    set selectedGroup(value: any);
    get selectedGroup(): any;
    afterCollapse: EventEmitter<any>;
    afterExpand: EventEmitter<any>;
    afterSelect: EventEmitter<any>;
    beforeCollapse: EventEmitter<any>;
    beforeExpand: EventEmitter<any>;
    beforeSelect: EventEmitter<any>;
    groupAdding: EventEmitter<any>;
    groupAdded: EventEmitter<any>;
    clear: EventEmitter<any>;
    groupRemoving: EventEmitter<any>;
    groupRemoved: EventEmitter<any>;
    selectionChanged: EventEmitter<any>;
    constructor(dataService: IntegralUIDataService, elemRef: ElementRef, commonService?: IntegralUICommonService, cmpResolver?: ComponentFactoryResolver, baseService?: IntegralUIBaseService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    ngAfterContentChecked(): void;
    addGroup(group: any): void;
    clearGroups(): void;
    insertGroupAt(group: any, index: number): void;
    insertGroupBefore(group: any, refGroup: any): void;
    insertGroupAfter(group: any, refGroup: any): void;
    removeGroup(group: any): void;
    removeGroupAt(index: number): void;
    private callEventAdd;
    private callEventRemove;
    collapse(group: any): void;
    expand(group: any): void;
    private closeGroups;
    private collapseComponent;
    private toggleGroups;
    private endToggle;
    private getGroupCurrentIndex;
    private getGroupDataIndex;
    private getGroupData;
    private getGroupIndex;
    private getComponentData;
    private getComponentFromGroup;
    invokeEvent(key: string, cmp: IntegralUIGroupBox, skip?: boolean): boolean;
    invokeMethod(key: string, cmp: IntegralUIGroupBox): boolean;
    private isIndexInRange;
    updateLayout(): void;
    clearSelection(): void;
    protected clearCmpSelection(cmp?: IntegralUIGroupBox): void;
    private selectComponent;
    private selectComponentByIndex;
    selectGroup(group: any): void;
    getControlStyle(): any;
    refresh(): void;
    static ɵfac: i0.ɵɵFactoryDef<IntegralUIAccordion, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<IntegralUIAccordion, "iui-accordion", never, { "controlStyle": "controlStyle"; "data": "data"; "enabled": "enabled"; "name": "name"; "size": "size"; "state": "state"; "expandMode": "expandMode"; "groups": "groups"; "selectedIndex": "selectedIndex"; "selectedGroup": "selectedGroup"; }, { "afterCollapse": "afterCollapse"; "afterExpand": "afterExpand"; "afterSelect": "afterSelect"; "beforeCollapse": "beforeCollapse"; "beforeExpand": "beforeExpand"; "beforeSelect": "beforeSelect"; "groupAdding": "groupAdding"; "groupAdded": "groupAdded"; "clear": "clear"; "groupRemoving": "groupRemoving"; "groupRemoved": "groupRemoved"; "selectionChanged": "selectionChanged"; }, ["contentList"], ["*"]>;
}
