import { LitElement, PropertyValues } from 'lit';
import { Constructor } from './types/generic.types';
import { ContextualTypes } from './types/app.types';
import { NotificationType, NotificationTypes } from './types/notifications.types';
import { getMarkNotificationMutation } from './data/notifications';
import { RealtimeNotificationEventType } from './types/realtime.types';
import { WeavyProps } from './types/weavy.types';
declare const WyNotificationToasts_base: Constructor<import('./mixins/block-mixin').BlockProps & import('./mixins/block-mixin').BlockContextProviderProps & import('./mixins/block-mixin').BlockContextProps & import('./mixins/block-mixin').BlockSettingProps & import('./types/product.types').ProductFeatureProps> & typeof LitElement;
export declare class WyNotificationToasts extends WyNotificationToasts_base {
    #private;
    static styles: import('lit').CSSResult[];
    contextualType: ContextualTypes;
    /**
     * What type of notifications to display.
     *
     * @type "" | "activity" | "mention" | "reaction"
     */
    typeFilter: NotificationTypes;
    /**
     * Sets the kind of notifications to use.
     * - "internal" - Use HTML notifications.
     * - "native" - Use browser notifications.
     */
    appearance: "internal" | "native";
    /**
     * Require the user to consent to notifications.
     * This in only affective with appearance =  "internal", since "native" always requires user consent.
     *
     * @type Boolean
     */
    requestUserPermission: boolean;
    /**
     * Sets the duration in ms of the *internal* notification toasts. Defaults to 5000.
     */
    duration: number;
    protected _notifications: NotificationType[];
    _nativeNotifications: Notification[];
    protected markNotificationMutation?: ReturnType<typeof getMarkNotificationMutation>;
    protected handleEvent: (e: RealtimeNotificationEventType) => void;
    addOrUpdateNotification(notification: NotificationType): Promise<void>;
    updateNotification(notification: NotificationType): Promise<void>;
    removeNotification(notificationId: number): void;
    addOrUpdateNativeNotification(notification: NotificationType): Promise<void>;
    removeNativeNotification(notificationId: number): boolean;
    closeNativeNotification(notificationId: number): boolean;
    hasUserPermission(): Promise<boolean>;
    clearNotifications(): void;
    private handleMark;
    constructor();
    protected willUpdate(changedProperties: PropertyValues<this & WeavyProps>): Promise<void>;
    render(): import('../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    disconnectedCallback(): void;
}
export type WyNotificationToastsType = Constructor<WyNotificationToasts>;
export {};
//# sourceMappingURL=wy-notification-toasts.d.ts.map