import { FocusKeyManager } from '@angular/cdk/a11y';
import { Directionality } from '@angular/cdk/bidi';
import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
import { AfterContentInit, EventEmitter, InjectionToken, OnDestroy, QueryList } from '@angular/core';
import { Subject } from 'rxjs';
import { KbqAccordionItemDirective } from './accordion-item.directive';
import * as i0 from "@angular/core";
export type KbqAccordionType = 'single' | 'multiple';
export type KbqAccordionOrientation = 'horizontal' | 'vertical';
export declare const KbqAccordionRootToken: InjectionToken<KbqAccordionRootDirective>;
export declare class KbqAccordionRootDirective implements AfterContentInit, OnDestroy {
    /** @docs-private */
    protected readonly selectionDispatcher: UniqueSelectionDispatcher;
    /** @docs-private */
    protected readonly dir: Directionality | null;
    /** @docs-private */
    protected keyManager: FocusKeyManager<KbqAccordionItemDirective>;
    /** @docs-private */
    readonly id: string;
    /** @docs-private */
    readonly openCloseAllActions: Subject<boolean>;
    get isMultiple(): boolean;
    /** Whether the Accordion is disabled. */
    disabled: boolean;
    /** The orientation of the accordion. */
    orientation: KbqAccordionOrientation;
    /**  @docs-private */
    items: QueryList<KbqAccordionItemDirective>;
    /**
     * The value of the item to expand when initially rendered and type is "single". Use when you do not need to control the state of the items.
     */
    set defaultValue(value: string[] | string);
    get defaultValue(): string[] | string;
    /**
     * Determines whether one or multiple items can be opened at the same time.
     */
    type: KbqAccordionType;
    /** @docs-private */
    collapsible: boolean;
    /** The controlled value of the item to expand */
    set value(value: string[] | string);
    get value(): string[] | string;
    readonly onValueChange: EventEmitter<void>;
    private _value?;
    private _defaultValue;
    private onValueChangeSubscription;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    /** @docs-private */
    handleKeydown(event: KeyboardEvent): void;
    /** Opens all enabled accordion items in an accordion where multi is enabled.
     * @docs-private
     */
    openAll(): void;
    /** Closes all enabled accordion items.
     * @docs-private
     */
    closeAll(): void;
    /** @docs-private */
    setActiveItem(item: KbqAccordionItemDirective): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionRootDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionRootDirective, "[kbqAccordionRoot]", never, { "disabled": { "alias": "disabled"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "type": { "alias": "type"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "onValueChange": "onValueChange"; }, ["items"], never, true, never>;
    static ngAcceptInputType_disabled: unknown;
}
