/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../core/base';
import { IExpansionPanelComponent } from '../expansion-panel';
import { IAccordionComponent } from './accordion';
export interface IAccordionAdapter extends IBaseAdapter {
    getHostElement(): IAccordionComponent;
    isNestedPanel(element: HTMLElement): boolean;
    getChildPanels(selector?: string): IExpansionPanelComponent[];
    addEventListener(event: string, callback: (event: Event) => void, element: Element, bubbles?: boolean): void;
    removeEventListener(event: string, callback: (event: Event) => void, element: Element, bubbles?: boolean): void;
}
export declare class AccordionAdapter extends BaseAdapter<IAccordionComponent> implements IAccordionAdapter {
    constructor(component: IAccordionComponent);
    /**
     * Gets the `<forge-accordion>` host element.
     * @returns An instance of the `AccordionComponent`.
     */
    getHostElement(): IAccordionComponent;
    /**
     * Determines if the given expansion panel element is nested within another expansion panel.
     * @param element The expansion panel element to test.
     */
    isNestedPanel(element: HTMLElement): boolean;
    /**
     * Finds all child `<forge-expansion-panel>` components within the host element.
     * @returns An array of `ExpansionPanelComponent` child instances.
     */
    getChildPanels(selector?: string): IExpansionPanelComponent[];
    /**
     * Adds an event listener to the provided element.
     * @param event The event name.
     * @param callback The event callback.
     * @param element The element to emit the event from.
     * @param [bubbles] Whether the event bubbles or not.
     */
    addEventListener(event: string, callback: (event: Event) => void, element: Element, bubbles?: boolean): void;
    /**
     * Removes an event listener from the provided element.
     * @param event The event name.
     * @param callback The event callback.
     * @param element The event to remove the event from.
     */
    removeEventListener(event: string, callback: (event: Event) => void, element: Element): void;
}
