import type { StringPluginArgChoices } from './types';
import { type BaseElem, type SelectorRoot } from "base-elem-js";
export interface IToasterDefaults {
    content: string;
    duration: number;
    ariaLive: 'off' | 'polite' | 'assertive';
    animationDuration: number;
    appendTo: SelectorRoot;
    outerCss: string;
    closeIconCss: string;
    closeTextCopy: string;
    enabledCss: string;
    dismissCss: string;
    btnDismissCss: string;
    cssGroupKey: string;
    oneOnly: boolean;
}
export interface IToasterOptions extends Partial<IToasterDefaults> {
    content: string;
}
export default class Toastr {
    #private;
    static defaults: IToasterDefaults;
    static version: string;
    static pluginName: string;
    static DismissedEventName: string;
    private toastrFinallyTimer;
    private active;
    private toasterBodyBuilt;
    $element: BaseElem;
    $toastrBody: BaseElem;
    $toastrWrap: BaseElem;
    params: IToasterDefaults;
    constructor(element: HTMLElement, options: IToasterOptions | StringPluginArgChoices);
    dismiss(): void;
    setContent(content: any, updateNow?: boolean): void;
    launch(): void;
    static setContent(element: BaseElem, content: string, updateNow?: boolean): void;
    static remove(element: BaseElem, plugin?: Toastr): void;
}
export interface ToastrPlugin {
    toastr(options?: IToasterOptions | StringPluginArgChoices): BaseElem;
}
declare module 'base-elem-js' {
    interface BaseElem extends ToastrPlugin {
    }
}
