import { type PropsWithChildren, type ReactNode } from 'react'; import type { AriaLabelingProps, DataTestId, DOMProps, MaskingProps, StylingProps } from '@dynatrace/strato-components/core'; import type { EventNotificationRequest, ResourceNotificationRequest } from '@dynatrace-sdk/client-notification-v2'; /** @public */ export interface NotificationSettingsResourceNotification { /** * Defines the type of the notifcation that should be subscribed to. */ type: 'resource'; /** * Configuration for a resource notification. Uses the `@dynatrace-sdk/client-notification-v2`. */ config: ResourceNotificationRequest; } /** @public */ export interface NotificationSettingsEventNotification { /** * Defines the type of the notifcation that should be subscribed to. */ type: 'event'; /** * Configuration for a event notification. Uses the `@dynatrace-sdk/client-notification-v2`. */ config: EventNotificationRequest; } /** @public */ export type NotificationSettingsConfig = NotificationSettingsEventNotification | NotificationSettingsResourceNotification; /** * @public */ export type NotificationSettingsProps = StylingProps & DataTestId & MaskingProps & DOMProps & AriaLabelingProps & NotificationSettingsConfig & { /** * Either a ReactNode or a render function that gets passed certain values * from the currently configured notification */ children?: (({ disabled, headingText, infoText, hasReadPermission, hasWritePermission, }: { disabled: boolean; headingText: string; infoText: string; hasReadPermission: boolean; hasWritePermission: boolean; }) => ReactNode) | ReactNode; }; /** * Switch function to determine which notification client should be used. * @internal */ export declare function NotificationProvider(props: PropsWithChildren>): string | number | boolean | Iterable | import("react/jsx-runtime.js").JSX.Element | null | undefined; /** * NotificationSettings component * @public */ export declare const NotificationSettings: (props: NotificationSettingsProps & import("react").RefAttributes) => React.ReactElement | null;