import { Overlay, OverlayRef } from '@angular/cdk/overlay';
import { EmbeddedViewRef, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';
import { BaseDismissibleToastService, BaseToastPosition, ToastBottomCenterPosition } from '@fundamental-ngx/cdk/utils';
import { MessageToastTextComponent } from './components/message-toast-text.component';
import { MessageToastConfig } from './config/message-toast.config';
import { MessageToastComponent } from './message-toast.component';
import { MessageToastRef } from './ref/message-toast.ref';
import * as i0 from "@angular/core";
export declare class MessageToastService<P = any> extends BaseDismissibleToastService<MessageToastConfig<P>> {
    /** @Hidden */
    protected toastTextComponent: typeof MessageToastTextComponent;
    /** @Hidden */
    protected toastContainerComponent: typeof MessageToastComponent;
    /** @Hidden */
    protected toastDataInjectionToken: import("@angular/core").InjectionToken<any>;
    /** @Hidden */
    protected toastPositionStrategy: typeof ToastBottomCenterPosition;
    /** @Hidden */
    protected defaultConfig: any;
    /** @hidden */
    constructor(overlay: Overlay, injector: Injector, config: MessageToastConfig);
    /**
     * Opens toast with a provided message.
     * @param message Message to display in a Message Toast.
     * @param config Toast configuration.
     * @returns Toast reference.
     */
    open<T = any>(message: string | Type<T> | TemplateRef<any>, config?: MessageToastConfig<P>): MessageToastRef<MessageToastTextComponent | T | EmbeddedViewRef<any>>;
    /**
     * Opens a Toast with provided message as a content.
     * @param message string to render inside a Toast.
     * @param config Toast configuration
     */
    openFromString(message: string, config?: MessageToastConfig<P>): MessageToastRef<MessageToastTextComponent>;
    /**
     * Opens a Toast with provided component inside.
     * @param component Component to render inside a Toast.
     * @param config Toast configuration.
     * @returns Toast reference.
     */
    openFromComponent<T>(component: Type<T>, config: MessageToastConfig<P>): MessageToastRef<T>;
    /**
     * Opens a Toast with provided Template Reference.
     * @param template Template Reference to render inside a Toast.
     * @param config Toast configuration.
     * @returns Toast reference.
     */
    openFromTemplate(template: TemplateRef<any>, config: MessageToastConfig<P>): MessageToastRef<EmbeddedViewRef<any>>;
    /** @hidden */
    protected getContainerComponentProviders(config: MessageToastConfig<P>): StaticProvider[];
    /** @hidden */
    protected getContentComponentProviders<T>(config: MessageToastConfig<P>, messageToastRef: MessageToastRef<T>): StaticProvider[];
    /** @hidden */
    protected getToastRef<T>(containerRef: MessageToastComponent, overlayRef: OverlayRef, positionStrategy?: BaseToastPosition): MessageToastRef<T | EmbeddedViewRef<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessageToastService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MessageToastService<any>>;
}
