import * as i0 from '@angular/core';
import { OnInit, OnDestroy, EventEmitter, ModuleWithProviders } from '@angular/core';
import * as i3 from '@angular/common';
import * as i4 from '@period-year-norway/ngx-bootstrap/collapse';

/**
 * Configuration service, provides default values for the AccordionComponent.
 */
declare class AccordionConfig {
    /** Whether the other panels should be closed when a panel is opened */
    closeOthers: boolean;
    /** turn on/off animation */
    isAnimated: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionConfig, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AccordionConfig>;
}

/** Displays collapsible content panels for presenting information in a limited amount of space. */
declare class AccordionComponent {
    /** turn on/off animation */
    isAnimated: boolean;
    /** if `true` expanding one item will close all others */
    closeOthers: boolean;
    protected groups: AccordionPanelComponent[];
    constructor(config: AccordionConfig);
    closeOtherPanels(openGroup: AccordionPanelComponent): void;
    addGroup(group: AccordionPanelComponent): void;
    removeGroup(group: AccordionPanelComponent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "accordion", never, { "isAnimated": { "alias": "isAnimated"; "required": false; }; "closeOthers": { "alias": "closeOthers"; "required": false; }; }, {}, never, ["*"], false, never>;
}

/**
 * ### Accordion heading
 * Instead of using `heading` attribute on the `accordion-group`, you can use
 * an `accordion-heading` attribute on `any` element inside of a group that
 * will be used as group's header template.
 */
declare class AccordionPanelComponent implements OnInit, OnDestroy {
    /** turn on/off animation */
    isAnimated: boolean;
    /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */
    heading: string;
    /** Provides an ability to use Bootstrap's contextual panel classes
     * (`panel-primary`, `panel-success`, `panel-info`, etc...).
     * List of all available classes [available here]
     * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)
     */
    panelClass: string;
    /** if <code>true</code> — disables accordion group */
    isDisabled: boolean;
    /** Emits when the opened state changes */
    isOpenChange: EventEmitter<boolean>;
    /** Is accordion group open or closed. This property supports two-way binding */
    get isOpen(): boolean;
    set isOpen(value: boolean);
    get isBs3(): boolean;
    protected _isOpen: boolean;
    protected accordion: AccordionComponent;
    constructor(accordion: AccordionComponent);
    ngOnInit(): void;
    ngOnDestroy(): void;
    toggleOpen(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionPanelComponent, "accordion-group, accordion-panel", never, { "heading": { "alias": "heading"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, { "isOpenChange": "isOpenChange"; }, never, ["[accordion-heading]", "*"], false, never>;
}

declare class AccordionModule {
    static forRoot(): ModuleWithProviders<AccordionModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AccordionModule, [typeof AccordionComponent, typeof AccordionPanelComponent], [typeof i3.CommonModule, typeof i4.CollapseModule], [typeof AccordionComponent, typeof AccordionPanelComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AccordionModule>;
}

export { AccordionComponent, AccordionConfig, AccordionModule, AccordionPanelComponent };
