import { ElementRef, Injector, OnDestroy, Renderer2 } from '@angular/core'; import { LogLevel } from '@microsoft/windows-admin-center-sdk/core/diagnostics/log-level'; import { Subscription } from 'rxjs'; import { Strings } from '../../generated/strings'; import { NgLifecycleBaseComponent } from './ng-lifecycle-base.component'; import * as i0 from "@angular/core"; /** * A base class for all components. * - TResourceStrings The typed interface for resource strings. */ export declare abstract class BaseComponent extends NgLifecycleBaseComponent implements OnDestroy { /** * Static constant to provide unique ids for each component * @see {componentId} */ private static nextComponentId; /** * The source name to use for logging */ protected abstract readonly logSourceName: string; /** * The localized strings for the current project */ strings: TResourceStrings; /** * A bag of ids generated using @see {componentId} and the map returned from @see {createIdBag} */ idBag: MsftSme.StringMap; /** * The unique id of this component. * This is useful when controls need to use an ID (such as in forms) but may appear multiple times on the same page. * Using this ID as the basis for the controls internal IDs generated in @see {createIdBag} keeps the IDs unique. */ protected componentId: string; /** * Container for active subscriptions that should be cleaned up in the OnDestroy call. */ protected subscriptions: Subscription[]; /** * The angular renderer service */ protected renderer: Renderer2; /** * The element reference for this component */ protected hostElement: ElementRef; /** * Initializes a new instance of the {BaseComponent} class. * @param injector The angular injection service. required by @SmeInjectableBase() decorator */ constructor(injector: Injector); /** * Implementation of angular OnDestroy interface * derived classes are always expected to call super.ngOnDestroy() when overriding */ ngOnDestroy(): void; /** * Creates the idBag used by this component to store unique element ids * Derived classes are always expected to call super.createIdBag() when overriding */ protected createIdBag(): MsftSme.StringMap; /** * Gets the initial host classes to be applied to this element * Derived classes are always expected to call super.getInitialHostClasses() when overriding */ protected getInitialHostClasses(): string[]; /** * Shortcut to get an attribute on the host element * @param name The name of the attribute */ protected getAttribute(name: string): string; /** * Shortcut to set an attribute on the host element * @param name The name of the attribute * @param value The value of the attribute */ protected setAttribute(name: string, value: string): void; /** * Shortcut to remove an attribute on the host element * @param name The name of the attribute */ protected removeAttribute(name: string): void; /** * Shortcut to add a class on the host element * @param className The name of the attribute */ protected addClass(className: string): void; /** * Shortcut to remove a class on the host element * @param className The name of the class */ protected removeClass(className: string): void; /** * Shortcut to set a style on the host element * @param style The name of the style * @param value The new value */ protected setStyle(style: string, value: any): void; /** * Shortcut to remove a style on the host element * @param style The name of the style */ protected removeStyle(style: string): void; /** * Shortcut to log a record. The source name is automatically picked up from the class instance * @param message the message of the log record * @param level (optional) the log level (defaults to Debug) * @param params (optional) the parameters to log * @param source (optional) the source of the log message. Defaults to the name of the constructor that instantiated this instance * @return Promise settle to resolve if buffered. */ protected log(message: string, level?: LogLevel, params?: any, source?: string): Promise; /** * Applies the initial classes to this components host element. * We preserve any custom classes by removing them, applying the base classes and reapplying the custom classes. */ private applyInitialHostClasses; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, {}, {}, never, never, false, never>; } /** * Internal base component for SME Core controls. It simply removes the need to supply the string type parameter * This class is exported from this file, but not meant to be exported from index.ts bundles. */ export declare abstract class CoreBaseComponent extends BaseComponent { }