import { AnimationEvent } from '@angular/animations';
import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
import { MessageService, PrimeTemplate, ToastMessageOptions } from 'primeng/api';
import { BaseComponent } from 'primeng/basecomponent';
import { Subscription } from 'rxjs';
import { ToastStyle } from './style/toaststyle';
import { ToastCloseEvent, ToastItemCloseEvent, ToastPositionType } from './toast.interface';
import * as i0 from "@angular/core";
import * as i1 from "primeng/api";
export declare class ToastItem extends BaseComponent implements AfterViewInit, OnDestroy {
    private zone;
    message: ToastMessageOptions | null | undefined;
    index: number | null | undefined;
    life: number;
    template: TemplateRef<any> | undefined;
    headlessTemplate: TemplateRef<any> | undefined;
    showTransformOptions: string | undefined;
    hideTransformOptions: string | undefined;
    showTransitionOptions: string | undefined;
    hideTransitionOptions: string | undefined;
    onClose: EventEmitter<ToastItemCloseEvent>;
    containerViewChild: ElementRef | undefined;
    _componentStyle: ToastStyle;
    timeout: any;
    constructor(zone: NgZone);
    ngAfterViewInit(): void;
    initTimeout(): void;
    clearTimeout(): void;
    onMouseEnter(): void;
    onMouseLeave(): void;
    onCloseIconClick: (event: Event) => void;
    get closeAriaLabel(): string;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastItem, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToastItem, "p-toastItem", never, { "message": { "alias": "message"; "required": false; }; "index": { "alias": "index"; "required": false; }; "life": { "alias": "life"; "required": false; }; "template": { "alias": "template"; "required": false; }; "headlessTemplate": { "alias": "headlessTemplate"; "required": false; }; "showTransformOptions": { "alias": "showTransformOptions"; "required": false; }; "hideTransformOptions": { "alias": "hideTransformOptions"; "required": false; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; }; }, { "onClose": "onClose"; }, never, never, true, never>;
    static ngAcceptInputType_index: unknown;
    static ngAcceptInputType_life: unknown;
}
/**
 * Toast is used to display messages in an overlay.
 * @group Components
 */
export declare class Toast extends BaseComponent implements OnInit, OnDestroy {
    /**
     * Key of the message in case message is targeted to a specific toast component.
     * @group Props
     */
    key: string | undefined;
    /**
     * Whether to automatically manage layering.
     * @group Props
     */
    autoZIndex: boolean;
    /**
     * Base zIndex value to use in layering.
     * @group Props
     */
    baseZIndex: number;
    /**
     * The default time to display messages for in milliseconds.
     * @group Props
     */
    life: number;
    /**
     * Inline style of the component.
     * @group Props
     */
    style: {
        [klass: string]: any;
    } | null | undefined;
    /**
     * Inline class of the component.
     * @group Props
     */
    styleClass: string | undefined;
    /**
     * Position of the toast in viewport.
     * @group Props
     */
    get position(): ToastPositionType;
    set position(value: ToastPositionType);
    /**
     * It does not add the new message if there is already a toast displayed with the same content
     * @group Props
     */
    preventOpenDuplicates: boolean;
    /**
     * Displays only once a message with the same content.
     * @group Props
     */
    preventDuplicates: boolean;
    /**
     * Transform options of the show animation.
     * @group Props
     */
    showTransformOptions: string;
    /**
     * Transform options of the hide animation.
     * @group Props
     */
    hideTransformOptions: string;
    /**
     * Transition options of the show animation.
     * @group Props
     */
    showTransitionOptions: string;
    /**
     * Transition options of the hide animation.
     * @group Props
     */
    hideTransitionOptions: string;
    /**
     * Object literal to define styles per screen size.
     * @group Props
     */
    breakpoints: {
        [key: string]: any;
    } | undefined;
    /**
     * Callback to invoke when a message is closed.
     * @param {ToastCloseEvent} event - custom close event.
     * @group Emits
     */
    onClose: EventEmitter<ToastCloseEvent>;
    /**
     * Custom template of message.
     * @group Templates
     */
    template: TemplateRef<any> | undefined;
    /**
     * Custom headless template.
     * @group Templates
     */
    headlessTemplate: TemplateRef<any> | undefined;
    containerViewChild: ElementRef | undefined;
    messageSubscription: Subscription | undefined;
    clearSubscription: Subscription | undefined;
    messages: ToastMessageOptions[] | null | undefined;
    messagesArchieve: ToastMessageOptions[] | undefined;
    _position: ToastPositionType;
    messageService: MessageService;
    _componentStyle: ToastStyle;
    styleElement: any;
    id: string;
    templates: QueryList<PrimeTemplate> | undefined;
    ngOnInit(): void;
    _template: TemplateRef<any> | undefined;
    _headlessTemplate: TemplateRef<any> | undefined;
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    add(messages: ToastMessageOptions[]): void;
    canAdd(message: ToastMessageOptions): boolean;
    containsMessage(collection: ToastMessageOptions[], message: ToastMessageOptions): boolean;
    onMessageClose(event: ToastItemCloseEvent): void;
    onAnimationStart(event: AnimationEvent): void;
    onAnimationEnd(event: AnimationEvent): void;
    createStyle(): void;
    destroyStyle(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Toast, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Toast, "p-toast", never, { "key": { "alias": "key"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "life": { "alias": "life"; "required": false; }; "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "position": { "alias": "position"; "required": false; }; "preventOpenDuplicates": { "alias": "preventOpenDuplicates"; "required": false; }; "preventDuplicates": { "alias": "preventDuplicates"; "required": false; }; "showTransformOptions": { "alias": "showTransformOptions"; "required": false; }; "hideTransformOptions": { "alias": "hideTransformOptions"; "required": false; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; }; "breakpoints": { "alias": "breakpoints"; "required": false; }; }, { "onClose": "onClose"; }, ["template", "headlessTemplate", "templates"], never, true, never>;
    static ngAcceptInputType_autoZIndex: unknown;
    static ngAcceptInputType_baseZIndex: unknown;
    static ngAcceptInputType_life: unknown;
    static ngAcceptInputType_preventOpenDuplicates: unknown;
    static ngAcceptInputType_preventDuplicates: unknown;
}
export declare class ToastModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ToastModule, never, [typeof Toast, typeof i1.SharedModule], [typeof Toast, typeof i1.SharedModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ToastModule>;
}
