import { ESLToggleable } from '../../esl-toggleable/core';
import type { ESLToggleableActionParams, ESLToggleableRequestDetails } from '../../esl-toggleable/core';
export interface ESLAlertActionParams extends ESLToggleableRequestDetails {
    /** text to be shown; passes empty string or null to hide */
    text?: string;
    /** html content */
    html?: string;
    /** classes to add to alert element */
    cls?: string;
    /** timeout to clear classes */
    hideTime?: number;
}
/**
 * ESLAlert component
 * @author Julia Murashko, Alexey Stsefanovich (ala'n)
 *
 * ESLAlert is a component to show small notifications on your pages. ESLAlert can have multiple instances on the page.
 */
export declare class ESLAlert extends ESLToggleable {
    static is: string;
    static observedAttributes: string[];
    /** Default show/hide params for all ESLAlert instances */
    static DEFAULT_PARAMS: ESLAlertActionParams;
    /** Event to show alert component */
    SHOW_REQUEST_EVENT: string;
    /** Event to hide alert component */
    HIDE_REQUEST_EVENT: string;
    /**
     * Defines the scope (using {@link ESLTraversingQuery} syntax) element to listen for an activation event.
     * Parent element by default
     */
    target: string;
    /** Default show/hide params for current ESLAlert instance */
    defaultParams: ESLAlertActionParams;
    protected $content: HTMLElement;
    protected activeCls?: string;
    private _$target;
    private _clearTimeout;
    /** Creates global alert instance (using body element as a base) */
    static init(options?: Partial<ESLAlert>): ESLAlert;
    protected mergeDefaultParams(params?: ESLToggleableActionParams): ESLToggleableActionParams;
    protected attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void;
    protected connectedCallback(): void;
    /** Target element to listen to activation events */
    get $target(): EventTarget;
    set $target($el: EventTarget);
    protected onShow(params: ESLAlertActionParams): void;
    protected onHide(params: ESLAlertActionParams): void;
    protected render({ text, html, cls }: ESLAlertActionParams): void;
    protected clear(): void;
    protected buildRequestParams(e: CustomEvent<ESLToggleableRequestDetails>): ESLAlertActionParams | null;
    protected _onHideRequest(e: CustomEvent<ESLToggleableRequestDetails>): void;
    protected _onShowRequest(e: CustomEvent<ESLToggleableRequestDetails>): void;
}
declare global {
    export interface ESLLibrary {
        Alert: typeof ESLAlert;
    }
    export interface HTMLElementTagNameMap {
        'esl-alert': ESLAlert;
    }
}
