import * as i0 from '@angular/core';
import { OnDestroy, AfterViewInit, ViewContainerRef } from '@angular/core';
import { ListItemComponent } from '@fundamental-ngx/core/list';

type SettingsViewMode = 'lg' | 'md' | 'sm';
declare enum VIEW_MODE {
    LG = "lg",
    MD = "md",
    SM = "sm"
}
declare class SettingsContainerComponent implements OnDestroy, AfterViewInit {
    /**
     * Heading level for the title in the Details Area
     * Default value is 2
     * Acceptable values: number 1 | 2 | 3 | 4 | 5 | 6
     */
    readonly detailsAreaTitleHeading: i0.InputSignal<1 | 2 | 4 | 3 | 5 | 6>;
    /**
     * Heading level display size for the title in the Details Area (controls the font size)
     * Default value is 5
     * Acceptable values: number 1 | 2 | 3 | 4 | 5 | 6
     */
    readonly detailsAreaTitleHeadingSize: i0.InputSignal<1 | 2 | 4 | 3 | 5 | 6>;
    /**
     * aria-label and title value for the back button
     */
    readonly backBtnAriaLabel: i0.InputSignal<string>;
    /** @hidden */
    readonly viewContainer: i0.Signal<ViewContainerRef | undefined>;
    /** @hidden */
    readonly listItems: i0.Signal<readonly ListItemComponent<any>[]>;
    /** @hidden */
    readonly activeListItem: i0.WritableSignal<ListItemComponent<any> | null>;
    /** @hidden */
    readonly viewMode: i0.WritableSignal<SettingsViewMode>;
    /** @hidden */
    readonly screenWidth: i0.WritableSignal<number>;
    /** @hidden */
    readonly showListArea: i0.WritableSignal<boolean>;
    /** @hidden */
    readonly showDetailArea: i0.WritableSignal<boolean>;
    /** @hidden */
    readonly activeTitle: i0.WritableSignal<string>;
    /**
     * Handle the navigation icon (arrow) of the Back button in RTL mode
     */
    protected readonly navigationArrow: i0.Signal<"navigation-right-arrow" | "navigation-left-arrow">;
    /** @hidden */
    private _eventUnlisteners;
    /** @hidden */
    private readonly _rtlService;
    /** @hidden */
    private _renderer;
    /** @hidden */
    constructor();
    /** @hidden */
    onWindowResize(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** @hidden */
    onHeaderBackClick(): void;
    /** @hidden */
    private _updateViewMode;
    /** @hidden */
    private _setupListItemListeners;
    /** @hidden */
    private _renderTemplate;
    /** @hidden */
    private _updateActiveTitle;
    /** @hidden */
    private _focusInitialListItem;
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SettingsContainerComponent, "fd-settings-container", never, { "detailsAreaTitleHeading": { "alias": "detailsAreaTitleHeading"; "required": false; "isSignal": true; }; "detailsAreaTitleHeadingSize": { "alias": "detailsAreaTitleHeadingSize"; "required": false; "isSignal": true; }; "backBtnAriaLabel": { "alias": "backBtnAriaLabel"; "required": false; "isSignal": true; }; }, {}, ["listItems"], ["[fd-settings-list-area]"], true, never>;
}

declare class SettingsContentContainerDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsContentContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsContentContainerDirective, "[fd-settings-content-container]", never, {}, {}, never, never, true, never>;
}

declare class SettingsContentDirective {
    /**
     * Whether the content should be without paddings.
     * Default value is false.
     */
    noPadding: i0.InputSignalWithTransform<boolean, unknown>;
    /**
     * Whether the content should be without background.
     * Default value is false.
     */
    noBackground: i0.InputSignalWithTransform<boolean, unknown>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsContentDirective, "[fd-settings-content]", never, { "noPadding": { "alias": "noPadding"; "required": false; "isSignal": true; }; "noBackground": { "alias": "noBackground"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class SettingsDetailAreaDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsDetailAreaDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsDetailAreaDirective, "[fd-settings-detail-area]", never, {}, {}, never, never, true, never>;
}

declare class SettingsDialogBodyDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsDialogBodyDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsDialogBodyDirective, "[fd-settings-dialog-body]", never, {}, {}, never, never, true, never>;
}

declare class SettingsDialogContentDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsDialogContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsDialogContentDirective, "[fd-settings-dialog-content]", never, {}, {}, never, never, true, never>;
}

declare class SettingsHeaderButtonDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsHeaderButtonDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsHeaderButtonDirective, "[fd-settings-header-button]", never, {}, {}, never, never, true, never>;
}

declare class SettingsHeaderDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsHeaderDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsHeaderDirective, "[fd-settings-header]", never, {}, {}, never, never, true, never>;
}

declare class SettingsListAreaDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsListAreaDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsListAreaDirective, "[fd-settings-list-area]", never, {}, {}, never, never, true, never>;
}

declare class SettingsListContainerDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsListContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsListContainerDirective, "[fd-settings-list-container]", never, {}, {}, never, never, true, never>;
}

declare class SettingsProfileCardNameDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsProfileCardNameDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsProfileCardNameDirective, "[fd-settings-profile-card-name]", never, {}, {}, never, never, true, never>;
}

declare class SettingsProfileCardSublineDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsProfileCardSublineDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsProfileCardSublineDirective, "[fd-settings-profile-card-subline]", never, {}, {}, never, never, true, never>;
}

declare class SettingsProfileCardDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsProfileCardDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SettingsProfileCardDirective, "[fd-settings-profile-card]", never, {}, {}, never, never, true, never>;
}

declare class SettingsComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "[fd-settings]", never, {}, {}, never, ["*"], true, never>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class SettingsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SettingsModule, never, [typeof SettingsListAreaDirective, typeof SettingsDetailAreaDirective, typeof SettingsListContainerDirective, typeof SettingsContentDirective, typeof SettingsContentContainerDirective, typeof SettingsProfileCardDirective, typeof SettingsProfileCardNameDirective, typeof SettingsProfileCardSublineDirective, typeof SettingsHeaderDirective, typeof SettingsHeaderButtonDirective, typeof SettingsDialogContentDirective, typeof SettingsDialogBodyDirective, typeof SettingsContainerComponent, typeof SettingsComponent], [typeof SettingsListAreaDirective, typeof SettingsDetailAreaDirective, typeof SettingsListContainerDirective, typeof SettingsContentDirective, typeof SettingsContentContainerDirective, typeof SettingsProfileCardDirective, typeof SettingsProfileCardNameDirective, typeof SettingsProfileCardSublineDirective, typeof SettingsHeaderDirective, typeof SettingsHeaderButtonDirective, typeof SettingsDialogContentDirective, typeof SettingsDialogBodyDirective, typeof SettingsContainerComponent, typeof SettingsComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SettingsModule>;
}

export { SettingsComponent, SettingsContainerComponent, SettingsContentContainerDirective, SettingsContentDirective, SettingsDetailAreaDirective, SettingsDialogBodyDirective, SettingsDialogContentDirective, SettingsHeaderButtonDirective, SettingsHeaderDirective, SettingsListAreaDirective, SettingsListContainerDirective, SettingsModule, SettingsProfileCardDirective, SettingsProfileCardNameDirective, SettingsProfileCardSublineDirective, VIEW_MODE };
export type { SettingsViewMode };
