import { FocusableOption } from '@angular/cdk/a11y';
import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
import { ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
import { KbqAccordionContentDirective } from './accordion-content.directive';
import { KbqAccordionOrientation } from './accordion-root.directive';
import { KbqAccordionTriggerDirective } from './accordion-trigger.directive';
import * as i0 from "@angular/core";
export type RdxAccordionItemState = 'open' | 'closed';
export declare class KbqAccordionItemDirective implements FocusableOption, OnDestroy {
    /** @docs-private */
    protected readonly accordion: import("./accordion-root.directive").KbqAccordionRootDirective;
    /** @docs-private */
    protected readonly changeDetectorRef: ChangeDetectorRef;
    /** @docs-private */
    protected readonly expansionDispatcher: UniqueSelectionDispatcher;
    /** @docs-private */
    trigger: KbqAccordionTriggerDirective;
    /** @docs-private */
    content: KbqAccordionContentDirective;
    get dataState(): RdxAccordionItemState;
    /**
     * The unique AccordionItem id.
     * @docs-private
     */
    readonly id: string;
    get orientation(): KbqAccordionOrientation;
    /** Whether the AccordionItem is expanded. */
    set expanded(expanded: boolean);
    get expanded(): boolean;
    private _expanded;
    set value(value: string);
    get value(): string;
    private _value?;
    /** Whether the AccordionItem is disabled. */
    set disabled(value: boolean);
    get disabled(): boolean;
    private _disabled;
    /** Event emitted every time the AccordionItem is closed. */
    readonly closed: EventEmitter<void>;
    /** Event emitted every time the AccordionItem is opened. */
    readonly opened: EventEmitter<void>;
    /**
     * Event emitted when the AccordionItem is destroyed.
     * @docs-private
     */
    readonly destroyed: EventEmitter<void>;
    /**
     * Emits whenever the expanded state of the accordion changes.
     * Primarily used to facilitate two-way binding.
     * @docs-private
     */
    readonly expandedChange: EventEmitter<boolean>;
    /** Unregister function for expansionDispatcher. */
    private removeUniqueSelectionListener;
    /** Subscription to openAll/closeAll events. */
    private openCloseAllSubscription;
    constructor();
    /** Emits an event for the accordion item being destroyed. */
    ngOnDestroy(): void;
    focus(): void;
    /** Toggles the expanded state of the accordion item. */
    toggle(): void;
    /** Sets the expanded state of the accordion item to false. */
    close(): void;
    /** Sets the expanded state of the accordion item to true. */
    open(): void;
    private subscribeToOpenCloseAllActions;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionItemDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionItemDirective, "[kbqAccordionItem]", ["kbqAccordionItem"], { "expanded": { "alias": "expanded"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "closed": "closed"; "opened": "opened"; "expandedChange": "expandedChange"; }, ["trigger", "content"], never, true, never>;
    static ngAcceptInputType_expanded: unknown;
    static ngAcceptInputType_disabled: unknown;
}
