/// <reference types="jquery" />
import { EnumObject, GroupEventMap, GroupModel, HtmlComponent, Icon, InitModelOf, KeyStrokeContext, LoadingSupport, ObjectOrChildModel, Widget } from '../index';
import MouseDownEvent = JQuery.MouseDownEvent;
export type GroupCollapseStyle = EnumObject<typeof Group.CollapseStyle>;
export declare class Group<TBody extends Widget = Widget> extends Widget implements GroupModel<TBody> {
    model: GroupModel<TBody>;
    eventMap: GroupEventMap;
    self: Group;
    bodyAnimating: boolean;
    collapsed: boolean;
    collapsible: boolean;
    title: string;
    titleHtmlEnabled: boolean;
    titleSuffix: string;
    header: Widget;
    headerFocusable: boolean;
    headerVisible: boolean;
    body: TBody;
    collapseStyle: GroupCollapseStyle;
    htmlHeader: HtmlComponent;
    htmlFooter: HtmlComponent;
    iconId: string;
    icon: Icon;
    $header: JQuery;
    $footer: JQuery;
    $collapseIcon: JQuery;
    $collapseBorderLeft: JQuery;
    $collapseBorderRight: JQuery;
    $title: JQuery;
    $titleSuffix: JQuery;
    constructor();
    static CollapseStyle: {
        readonly LEFT: "left";
        readonly RIGHT: "right";
        readonly BOTTOM: "bottom";
    };
    protected _init(model: InitModelOf<this>): void;
    protected _createKeyStrokeContext(): KeyStrokeContext;
    protected _initKeyStrokeContext(): void;
    protected _render(): void;
    protected _addAriaFieldDescription(): void;
    protected _renderProperties(): void;
    protected _remove(): void;
    protected _renderEnabled(): void;
    /** @see GroupModel.iconId */
    setIconId(iconId: string): void;
    /**
     * Adds an image or font-based icon to the group header by adding either an IMG or SPAN element.
     */
    protected _renderIconId(): void;
    protected _updateIconStyle(): void;
    get$Icon(): JQuery;
    protected _removeIconId(): void;
    /** @see GroupModel.header */
    setHeader(header: ObjectOrChildModel<Widget>): void;
    protected _setHeader(header: Widget): void;
    /** @see GroupModel.headerFocusable */
    setHeaderFocusable(headerFocusable: boolean): void;
    protected _renderHeaderFocusable(): void;
    setTitle(title: string): void;
    protected _renderTitle(): void;
    setTitleSuffix(titleSuffix: string): void;
    protected _renderTitleSuffix(): void;
    setHeaderVisible(headerVisible: boolean): void;
    protected _renderHeaderVisible(): void;
    /** @see GroupModel.body */
    setBody(body: ObjectOrChildModel<TBody>): void;
    protected _setBody(body: TBody): void;
    protected _createLoadingSupport(): LoadingSupport;
    protected _renderHeader(): void;
    protected _renderBody(): void;
    getFocusableElement(): HTMLElement | JQuery;
    toggleCollapse(): void;
    setCollapsed(collapsed: boolean): void;
    protected _renderCollapsed(): void;
    setCollapsible(collapsible: boolean): void;
    protected _renderCollapsible(): void;
    setCollapseStyle(collapseStyle: GroupCollapseStyle): void;
    protected _renderCollapseStyle(): void;
    protected _onHeaderMouseDown(event: MouseDownEvent): void;
    protected _onFooterMouseDown(event: MouseDownEvent): void;
    /**
     * Resizes the body to its preferred size by animating the height.
     */
    resizeBody(): void;
    animateToggleCollapse(): JQuery.Promise<JQuery>;
}
//# sourceMappingURL=Group.d.ts.map