import { AfterViewChecked, Injector, OnDestroy, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { ActivatedRouteSnapshot, NavigationExtras, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { CoreBaseComponent } from '../common/base.component';
import { DialogService } from '../dialog/dialog.service';
import { LayoutConfig, LayoutConfigGenerator } from '../layout/layout-config';
import { CanComponentDeactivate } from './settings-can-deactivate-guard.service';
import { SettingsFormService } from './settings-form.service';
import * as i0 from "@angular/core";
/**
 *
 * @smeDoc {@label Settings @id sme-settings}
 *
 * @overview
 * @file {@filepath ./examples/settings-overview.md}
 *
 * @example {@label Basic Multi-Form Usage @id basic-multi}
 * @file {@filename component.html @filepath ./examples/multi-form-example/component.html}
 * @file {@filename component.ts @filepath ./examples/multi-form-example/component.ts}
 * @file {@filename panel1.ts @filepath ./examples/multi-form-example/panel1.ts}
 * @file {@filename panel1.html @filepath ./examples/multi-form-example/panel1.html}
 * @file {@filename panel2.ts @filepath ./examples/multi-form-example/panel2.ts}
 * @file {@filename panel2.html @filepath ./examples/multi-form-example/panel2.html}
 * @file {@filename component-routing.module @filepath ./examples/multi-form-example/routing.module.ts}
 *
 * @example {@label Basic Single-Form Usage @id basic-single}
 * @file {@filename component.html @filepath ./examples/single-form-example/component.html}
 * @file {@filename component.ts @filepath ./examples/single-form-example/component.ts}
 * @file {@filename panel.ts @filepath ./examples/single-form-example/panel.ts}
 * @file {@filename panel.html @filepath ./examples/single-form-example/panel.html}
 * @file {@filename component-routing.module @filepath ./examples/single-form-example/routing.module.ts}
 *
 */
/**
 * Defines base settings component, implements core functionality + settings form.
 */
export declare class SettingsComponent extends CoreBaseComponent implements OnInit, OnDestroy, AfterViewChecked {
    /**
     * The source name to use for logging
     */
    protected get logSourceName(): string;
    allForms: FormGroup[];
    /**
     * @deprecated since 05/23/22. Please remove this parameter from passing in to this control.
     */
    addPadding: boolean;
    /**
     * Separator used in sticky header on top of Settings page
     */
    readonly headerSeparator = "|";
    /**
     * @deprecated Add your own custom back button in the form
     */
    backRoute: {
        commands: any[];
        extras?: NavigationExtras;
    };
    settingsTitle: string;
    /**
     * Store the currently selected settings title
     */
    selectedSettingsTitle: string;
    /**
     * Store the concatenation of settingsTitle, headerSeparator & selectedSettingsTitle
     * Used for tool tip when hover over header
     */
    fullSettingsTitle: string;
    settingsForms: SettingsFormService;
    dialogService: DialogService;
    /**
     * The current layout config for custom config 1.
     */
    currentLayoutConfig: LayoutConfig;
    /**
     * The generator for layout config.
     */
    layoutConfigGenerator: LayoutConfigGenerator;
    private autoFocus;
    constructor(injector: Injector);
    ngOnInit(): void;
    ngOnDestroy(): void;
    canDeactivate(component: CanComponentDeactivate, route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean;
    /**
     * Angular Life Cycle hook for After View Checked.
     * When the visibility changes, we are going to focus on the first element that has the autofocus attribute
     */
    ngAfterViewChecked(): void;
    /**
     * Gets the initial host classes to be applied to this element
     */
    protected getInitialHostClasses(): string[];
    /**
     * Update this.settingsTitle (header of the setting page) to newly selected setting item
     */
    updateSelectedSettingTitle(newSelectedSettingTitle: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "sme-settings", never, { "addPadding": "addPadding"; "backRoute": "backRoute"; "settingsTitle": "settingsTitle"; "selectedSettingsTitle": "selectedSettingsTitle"; }, {}, never, ["sme-settings-navigation", "sme-settings-header", "sme-settings-content", "sme-settings-footer"], false, never>;
}
