import { EventEmitter, OnDestroy, OnChanges, ElementRef, AfterContentInit } from '@angular/core';
import { FudisBadgeVariant, FudisComponentChanges, FudisExpandableType } from '../../types/miscellaneous';
import { FudisIdService } from '../../services/id/id.service';
import { FudisInternalErrorSummaryService } from '../../services/form/error-summary/internal-error-summary.service';
import { ExpandableContentDirective } from './expandable-content.directive';
import * as i0 from "@angular/core";
export declare class ExpandableComponent implements OnDestroy, OnChanges, AfterContentInit {
    private _element;
    private _idService;
    private _errorSummaryService;
    constructor(_element: ElementRef, _idService: FudisIdService, _errorSummaryService: FudisInternalErrorSummaryService);
    /**
     * Content directive for Fudis Expandable Content
     */
    protected _content: ExpandableContentDirective;
    /**
     * Title of the expandable
     */
    title: string;
    /**
     * Expandable title's semantic aria-level for screen readers
     */
    level: number;
    /**
     * Visual variant of the expandable
     */
    variant: FudisExpandableType;
    /**
     * Expandable content padding depth
     */
    padding: 'default' | 'small';
    /**
     * Optional sub title, placed underneath the main title
     */
    subTitle: string;
    /**
     * Add badge next to the expandable title
     */
    badge: FudisBadgeVariant | null;
    /**
     * Badge text
     */
    badgeText: string | null;
    /**
     * Display Expandable title in the breadcrumb of Error Summary
     */
    errorSummaryBreadcrumb: boolean;
    /**
     * If Expandable is used inside Form component, by default it will open itself when ReloadErrors
     * is called in Error Summary Service. To disable this behavior, set this to false.
     */
    openOnErrorSummaryReload: boolean;
    /**
     * Expandable is initially closed by default but can be controlled by [closed] input property
     */
    set closed(value: boolean);
    /**
     * Optional output function when the closed status changes
     */
    closedChange: EventEmitter<boolean>;
    /**
     * Internal boolean of whether the expandable is currently closed
     */
    protected _closed: boolean;
    /**
     * Internal id to generate unique id
     */
    protected _id: string;
    /**
     * Internal, separate unique heading id
     */
    protected _headingId: string;
    /**
     * Lazy loading check for expanding content
     */
    protected _openedOnce: boolean;
    /**
     * Is info sent to Error Summary Service
     */
    private _errorSummaryInfoSent;
    private _parentFormId;
    private _getParentForm;
    /**
     * Getter for closed boolean
     */
    get closed(): boolean;
    private _injector;
    ngAfterContentInit(): void;
    ngOnChanges(changes: FudisComponentChanges<ExpandableComponent>): void;
    ngOnDestroy(): void;
    /**
     * Send error object to Error Summary Service
     */
    private _addToErrorSummary;
    /**
     * Remove error object from Error Summary Service
     */
    private _removeFromErrorSummary;
    /**
     * Setter for closed boolean
     */
    protected _setClosedStatus(value: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ExpandableComponent, "fudis-expandable", never, { "title": { "alias": "title"; "required": true; }; "level": { "alias": "level"; "required": true; }; "variant": { "alias": "variant"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "subTitle": { "alias": "subTitle"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "badgeText": { "alias": "badgeText"; "required": false; }; "errorSummaryBreadcrumb": { "alias": "errorSummaryBreadcrumb"; "required": false; }; "openOnErrorSummaryReload": { "alias": "openOnErrorSummaryReload"; "required": false; }; "closed": { "alias": "closed"; "required": false; }; }, { "closedChange": "closedChange"; }, ["_content"], ["fudis-expandable-actions"], false, never>;
}
