import { ChangeDetectorRef, ElementRef, Renderer2, OnChanges, OnInit, OnDestroy, TemplateRef, EventEmitter, AfterContentInit } from '@angular/core';
import { LyTheme2 } from '@alyle/ui';
import { LyAccordion } from './accordion';
import { LyExpansionPanelContent } from './expansion-panel-content';
import { Subject } from 'rxjs';
import { AnimationEvent } from '@angular/animations';
import { BooleanInput } from '@angular/cdk/coercion';
import * as i0 from "@angular/core";
/** LyExpansionPanel's states. */
export type LyExpansionPanelState = 'expanded' | 'collapsed';
/** @docs-private */
export declare class LyExpansionPanelBase {
    _theme: LyTheme2;
    constructor(_theme: LyTheme2);
}
/** @docs-private */
export declare const LyButtonMixinBase: import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/build-common-behaviors").CanStyleUpdater> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/bg").CanBg> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/color").CanColor> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/elevation").CanElevation> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/shadow-color").CanShadowColor> & typeof LyExpansionPanelBase;
export declare class LyExpansionPanel extends LyButtonMixinBase implements OnChanges, OnInit, AfterContentInit, OnDestroy {
    private _el;
    private _renderer;
    private _cd;
    private _accordion;
    /** @docs-private */
    readonly classes: import("@alyle/ui").LyClasses<(theme: import("@alyle/ui").ThemeVariables & import("./accordion").ExpansionVariables, ref: import("@alyle/ui").ThemeRef) => {
        $priority: number;
        $name: string;
        $global: () => (_className: string) => string;
        root: () => import("@alyle/ui").StyleTemplate;
        panel: () => (_className: string) => string;
        panelHeader: () => (_className: string) => string;
        panelHeaderContent: (_className: string) => string;
        panelContent: (_className: string) => string;
        panelBody: (_className: string) => string;
        panelTitle: (_className: string) => string;
        panelDescription: (_className: string) => string;
        panelActionRow: (_className: string) => string;
        expanded: () => (_className: string) => string;
        disabled: (_className: string) => string;
    }>;
    readonly _panelAnimationTiming: string;
    /** Subscription to openAll/closeAll events. */
    private _openCloseAllSubscription;
    private _disabled;
    private _expanded;
    private _hasToggle;
    _lazyContentRef: TemplateRef<any>;
    /** Content that will be rendered lazily. */
    readonly _lazyContent: LyExpansionPanelContent;
    /** Event emitted every time the LyExpansionPanel is closed. */
    closed: EventEmitter<void>;
    /** Event emitted every time the LyExpansionPanel is opened. */
    opened: EventEmitter<void>;
    /** An event emitted after the body's collapse animation happens. */
    afterCollapse: EventEmitter<void>;
    /** An event emitted after the body's expansion animation happens. */
    afterExpand: EventEmitter<void>;
    /** Event emitted when the LyExpansionPanel is destroyed. */
    destroyed: EventEmitter<void>;
    /** Stream of body animation done events. */
    _bodyAnimationDone: Subject<AnimationEvent>;
    set disabled(val: BooleanInput);
    get disabled(): boolean;
    set expanded(val: BooleanInput);
    get expanded(): boolean;
    set hasToggle(val: BooleanInput);
    get hasToggle(): boolean;
    constructor(_el: ElementRef, _renderer: Renderer2, _cd: ChangeDetectorRef, _theme: LyTheme2, _accordion: LyAccordion);
    ngOnChanges(): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    close(): void;
    open(): void;
    toggle(): void;
    /** Gets the expanded state string. */
    _getExpandedState(): LyExpansionPanelState;
    private _subscribeToOpenCloseAllActions;
    static ɵfac: i0.ɵɵFactoryDeclaration<LyExpansionPanel, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LyExpansionPanel, "ly-expansion-panel", ["lyExpansionPanel"], { "bg": { "alias": "bg"; "required": false; }; "color": { "alias": "color"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "shadowColor": { "alias": "shadowColor"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "hasToggle": { "alias": "hasToggle"; "required": false; }; }, { "closed": "closed"; "opened": "opened"; "afterCollapse": "afterCollapse"; "afterExpand": "afterExpand"; "destroyed": "destroyed"; }, ["_lazyContent"], ["ly-expansion-panel-header", "*", "ly-action-row"], false, never>;
}
