import { FC } from 'react';
import { AlertProps } from './types';
/**
 * Alert — portal-based notification container driven by the Observer pattern.
 *
 * ## Usage pattern (two steps)
 *
 * **Step 1 — mount once** near the app root (layout, shell, etc.).
 * The component renders nothing until `showAlert` is called.
 *
 * ```tsx
 * // app-root.tsx
 * import { Alert, NotificationPositions } from '@ssa-ui-kit/core';
 *
 * <Alert position={NotificationPositions.rightTop} withShadow maxAmount={5} />
 * ```
 *
 * **Step 2 — trigger from anywhere** via `showAlert`.
 * No refs, no prop drilling, no context required.
 *
 * ```tsx
 * import { showAlert, AlertVariants } from '@ssa-ui-kit/core';
 *
 * showAlert({ variant: AlertVariants.success, title: 'Saved!' });
 *
 * showAlert({
 *   variant: AlertVariants.error,
 *   title: 'Upload failed',
 *   description: 'File exceeds 10 MB.',
 *   cancelText: 'Dismiss',
 *   onClose: () => {},           // required for the cancel button to appear
 *   submitText: 'Retry',
 *   onSubmit: () => retryFn(),   // required for the submit button to appear
 * });
 * ```
 *
 * ## Key props
 * - `position`        — one of `NotificationPositions` (default: `rightTop`)
 * - `maxAmount`       — cap on simultaneous alerts; oldest is dropped when exceeded
 * - `withShadow`      — drop shadow (default: `true`)
 * - `withBorder`      — 1 px accent-color border (default: `false`)
 * - `inheritMainColor`— close icon matches the variant accent color
 * - `containerSelector` — CSS selector for a custom portal target; falls back to `document.body`
 * - `styles`          — `AlertStyleOverrides` object for per-slot CSS customization without touching the theme
 *
 * ## Stacking order
 * - `*-top` positions  → newest alert prepended (appears at the top of the stack)
 * - `*-bottom` positions → newest alert appended (appears at the bottom of the stack)
 *
 * When `maxAmount` is set and the stack is full, the oldest alert is dropped:
 * - `*-top`:    drops from the **end** of the array (bottom of the stack)
 * - `*-bottom`: drops from the **start** of the array (top of the stack)
 *
 * @category Components
 * @subcategory Notification
 */
declare const Alert: FC<AlertProps>;
export default Alert;
