/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IExpansionPanelAdapter } from './expansion-panel-adapter';
export interface IExpansionPanelFoundation extends ICustomElementFoundation {
    open: boolean;
    orientation: string;
    useAnimations: boolean;
    openCallback: () => void | Promise<void>;
    closeCallback: () => void | Promise<void>;
    setOpenImmediate(open: boolean): void;
}
export declare class ExpansionPanelFoundation implements IExpansionPanelFoundation {
    private _adapter;
    private _open;
    private _useAnimations;
    private _openCallback;
    private _closeCallback;
    private _orientation;
    private _clickListener;
    private _keydownListener;
    private _headerSlotChangeListener;
    private _isInitialized;
    constructor(_adapter: IExpansionPanelAdapter);
    initialize(): void;
    connect(): void;
    disconnect(): void;
    setOpenImmediate(open: boolean): void;
    private _applyOpen;
    /** Controls the open state of the panel. */
    get open(): boolean;
    set open(value: boolean);
    get openCallback(): () => void | Promise<void>;
    set openCallback(callback: () => void | Promise<void>);
    get closeCallback(): () => void | Promise<void>;
    set closeCallback(callback: () => void | Promise<void>);
    get orientation(): string;
    set orientation(value: string);
    get useAnimations(): boolean;
    set useAnimations(value: boolean);
    /**
     * Handles click events on the header element.
     * @param {MouseEvent} evt The click event.
     */
    private _onClick;
    /**
     * Handles keydown events on the header.
     * @param {KeyboardEvent} evt The keydown event
     */
    private _onKeydown;
    private _emitEvent;
    private _toggle;
    private _openPanel;
    private _closePanel;
    private _onHeaderSlotChanged;
}
