import { LitElement } from 'lit';
import { ObcFloatingItemType, ObcFloatingItemDirection, ObcFloatingItemLineType } from '../floating-item/floating-item.js';
import '../floating-item/floating-item.js';
import '../../icons/icon-notification-filled.js';
/**
 * `<obc-notification-floating-item>` – A floating notification message component for transient feedback, alerts, or status updates.
 *
 * Displays a notification as an overlay above the main UI, typically used to inform users of events, actions, or system statuses without interrupting their workflow. This component is a specialized variant of a floating message (toast/snackbar) with notification-specific styling and iconography.
 *
 * ### Features
 * - **Variants (type):**
 *   - `regular` (default): Standard notification appearance for general messages.
 *   - `application`: Enhanced notification with an additional secondary icon, suitable for application-level or high-visibility messages.
 * - **Layout Direction (direction):**
 *   - `horizontal` (default): Content and actions are arranged side-by-side.
 *   - `vertical`: Content and actions are stacked for narrow spaces or longer messages.
 * - **Line Type (lineType):**
 *   - `singleLine` (default): Compact, single-line layout for brief messages.
 *   - `multiLine`: Supports longer, multi-line descriptions.
 * - **Timestamp and Day Labels:**
 *   - `hasTimestamp`: Displays a time label (e.g., "09:12:46") when enabled.
 *   - `hasDay`: Displays a day label (e.g., "Yesterday") when enabled (requires `hasTimestamp`).
 * - **Actions:**
 *   - `action`: Shows a primary action button (e.g., "Close").
 *   - `action2`: Shows a secondary action button (e.g., "Undo"). Only available if `action` is enabled.
 * - **Icon Slots:**
 *   - Customizable icons via slots, with a default notification icon provided.
 * - **Event Handling:**
 *   - Emits custom events for action and dismiss interactions.
 *
 * ### Usage Guidelines
 * Use `<obc-notification-floating-item>` for brief, transient notifications that inform users about non-critical events, confirmations, or status changes. Ideal for scenarios where feedback should be visible but not persistent, such as after completing an action or receiving a system update. Avoid using for critical or blocking alerts—use a dialog or alert banner for those cases.
 *
 * - Prefer the `application` type for notifications that require extra emphasis or represent application-wide events.
 * - Use the `multiLine` layout for longer messages to maintain readability.
 * - Only enable both actions if the secondary action is truly necessary (e.g., "Undo" alongside "Close").
 * - For accessibility and clarity, keep notification messages concise.
 * - By default, the notification does not auto-dismiss; manual dismissal or action is required.
 *   **TODO(designer):** Confirm if auto-dismissal is recommended or supported for this component.
 *
 * **Related keywords:** notification, toast, snackbar, floating message, alert, status update, transient feedback.
 *
 * ### Slots
 *
 * | Slot Name       | Renders When...               | Purpose                                                      |
 * |-----------------|------------------------------|--------------------------------------------------------------|
 * | primary-icon    | Always (all types)           | Main icon representing the notification category.            |
 * | secondary-icon  | type="application" only      | Additional icon for application-type notifications.          |
 * | title           | Always                       | Title or heading of the notification.                        |
 * | description     | Always                       | Detailed message text.                                       |
 * | time            | hasTimestamp is true         | Timestamp label (e.g., "09:12:46").                          |
 * | day             | hasTimestamp && hasDay       | Day label (e.g., "Yesterday").                               |
 * | action          | action is true               | Label/content for the primary action button.                 |
 * | action2         | action2 is true              | Label/content for the secondary action button.               |
 *
 * ### Events
 * - `action-click` – Fired when the primary action button is clicked.
 * - `action2-click` – Fired when the secondary action button is clicked.
 * - `dismiss-click` – Fired when the notification is dismissed (e.g., close icon or programmatically).
 *
 * ### Example
 * ```html
 * <obc-notification-floating-item
 *   type="regular"
 *   direction="horizontal"
 *   hasTimestamp
 *   action
 * >
 *   <obi-placeholder slot="primary-icon"></obi-placeholder>
 *   <span slot="title">Notification title</span>
 *   <span slot="description">A notification message with meaningful content for the user.</span>
 *   <span slot="time">09:12:46</span>
 *   <span slot="action">Close</span>
 * </obc-notification-floating-item>
 * ```
 *
 * @slot primary-icon - Main icon representing the notification category.
 * @slot secondary-icon - Additional icon for application-type notifications.
 * @slot title - Title or heading of the notification.
 * @slot description - Detailed message text.
 * @slot time - Timestamp label (e.g., "09:12:46").
 * @slot day - Day label (e.g., "Yesterday").
 * @slot action - Label/content for the primary action button.
 * @slot action2 - Label/content for the secondary action button.
 * @fires action-click {CustomEvent<void>} When the primary action button is clicked.
 * @fires action2-click {CustomEvent<void>} When the secondary action button is clicked.
 * @fires dismiss-click {CustomEvent<void>} When the notification is dismissed.
 */
export declare class ObcNotificationFloatingItem extends LitElement {
    /**
     * Defines the notification type.
     * - `regular`: Standard notification appearance.
     * - `application`: Application-level notification with additional icon.
     * Default is `regular`.
     */
    type: ObcFloatingItemType;
    /**
     * Sets the layout direction of the notification.
     * - `horizontal`: Content and actions are arranged side-by-side.
     * - `vertical`: Content and actions are stacked.
     * Default is `horizontal`.
     */
    direction: ObcFloatingItemDirection;
    /**
     * If true, displays a timestamp label (e.g., "09:12:46") in the notification.
     * Default is false.
     */
    hasTimestamp: boolean;
    /**
     * If true (and `hasTimestamp` is also true), displays a day label (e.g., "Yesterday") in the notification.
     * Default is false.
     */
    hasDay: boolean;
    /**
     * If true, displays a primary action button (e.g., "Close").
     * Default is false.
     */
    action: boolean;
    /**
     * If true, displays a secondary action button (e.g., "Undo").
     * Only available if `action` is also true.
     * Default is false.
     */
    action2: boolean;
    /**
     * Sets the line type for the notification content.
     * - `singleLine`: Compact, single-line layout.
     * - `multiLine`: Supports longer, multi-line descriptions.
     * Default is `singleLine`.
     */
    lineType: ObcFloatingItemLineType;
    protected render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-notification-floating-item': ObcNotificationFloatingItem;
    }
}
//# sourceMappingURL=notification-floating-item.d.ts.map