import { OnInit, EventEmitter, SimpleChanges, OnChanges, AfterViewInit } from "@angular/core";
import { CssUtils } from "../utils";
import { BehaviorSubject } from "rxjs";
import { DxcAccordionIconComponent } from "./dxc-accordion-icon/dxc-accordion-icon.component";
import { QueryList, ChangeDetectorRef, ElementRef } from "@angular/core";
import * as i0 from "@angular/core";
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
declare type Margin = {
    top?: Space;
    bottom?: Space;
    left?: Space;
    right?: Space;
};
declare type Padding = {
    top?: Space;
    bottom?: Space;
    left?: Space;
    right?: Space;
};
export declare class DxcAccordionComponent implements OnInit, OnChanges, AfterViewInit {
    private cssUtils;
    private cdRef;
    private elementRef;
    currentBackgroundColor: string;
    /**
     * The panel label.
     */
    label: string;
    /**
     * @deprecated URL of the icon that will be placed next to panel label.
     */
    iconSrc: string;
    /**
     * Assistive text to be placed on the right side of the panel.
     */
    assistiveText: string;
    /**
     * If true, the component will be disabled.
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    /**
     * This event will emit in case the user clicks the accordion to expand or collapse
     * the panel. The new state of the panel will be passed as a parameter.
     */
    onClick: EventEmitter<boolean>;
    /**
     * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
     * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
     */
    margin: Space | Margin;
    /**
     * Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
     * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
     */
    padding: Space | Padding;
    /**
     * Represents the state of the panel. When true, the component will be
     * expanded. If undefined, the component will be uncontrolled and its
     * value will be managed internally by the component.
     */
    get isExpanded(): boolean;
    set isExpanded(value: boolean);
    private _isExpanded;
    /**
     * Value of the tabindex.
     */
    get tabIndexValue(): number;
    set tabIndexValue(value: number);
    private _tabIndexValue;
    className: any;
    _matExpansionPanel: any;
    renderedIsExpanded: boolean;
    /**
     * Element used as the icon that will be placed next to panel label.
     */
    dxcAccordionIcon: QueryList<DxcAccordionIconComponent>;
    defaultInputs: BehaviorSubject<any>;
    constructor(cssUtils: CssUtils, cdRef: ChangeDetectorRef, elementRef: ElementRef);
    getElement(): ElementRef<any>;
    ngAfterViewInit(): void;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onClickHandler($event: any): void;
    getDynamicStyle(inputs: any): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcAccordionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcAccordionComponent, "dxc-accordion", never, { "label": "label"; "iconSrc": "iconSrc"; "assistiveText": "assistiveText"; "disabled": "disabled"; "margin": "margin"; "padding": "padding"; "isExpanded": "isExpanded"; "tabIndexValue": "tabIndexValue"; }, { "onClick": "onClick"; }, ["dxcAccordionIcon"], ["dxc-accordion-icon", "*"]>;
}
export {};
//# sourceMappingURL=dxc-accordion.component.d.ts.map