import { LitElement } from 'lit';
import '../button/button.js';
import '../../icons/icon-chevron-down-google.js';
import '../../icons/icon-chevron-up-google.js';
import '../../icons/icon-alerts-shelf.js';
export declare enum ObcMessageMenuItemSize {
    SingleLine = "single-line",
    DoubleLine = "double-line"
}
/**
 * `<obc-message-menu-item>` – An expandable message or notification item for use in message lists, notification panels, or alert menus.
 *
 * Displays a concise message row with optional icons, title, description, timestamp, and action buttons. Clicking the item expands it to reveal the full content. Designed for scannable lists where users may need to quickly review and act on individual messages.
 *
 * ## Features
 *
 * - **Size Variants:**
 *   - `single-line`: Compact layout with title and description on one line (default).
 *   - `double-line`: Two-line layout with title on top and description below.
 *   - When clicked, both variants expand to show full multi-line content.
 *
 * - **Stack Direction:**
 *   - `stackVertical=false` (default): Action buttons appear inline to the right of the content.
 *   - `stackVertical=true`: Action buttons appear below the content, spanning full width.
 *
 * - **Icon Options:**
 *   - Primary and secondary icon slots for visual context or status indicators.
 *   - Enhanced icon mode (`enhancedIcon`) increases icon size for emphasis.
 *   - Trailing icon slot (horizontal layout only) for additional actions.
 *   - Shelved state (`isShelved`) displays a shelf icon automatically.
 *
 * - **Actions:**
 *   - Supports up to two action buttons via `primaryActionLabel` and `secondaryActionLabel`.
 *   - In vertical layout, action buttons expand to full width.
 *
 * - **Timestamp:**
 *   - Optional day and time display via `day` and `time` properties.
 *
 * ## Usage Guidelines
 *
 * Use `obc-message-menu-item` to present individual notifications, alerts, or messages within a scrollable list. Ideal for scenarios where users need to quickly scan items, expand for details, or take immediate action.
 *
 * - Use `single-line` for high-density lists where space is limited.
 * - Use `double-line` when the description needs more visibility in the collapsed state.
 * - Keep `stackVertical=false` (default) when actions should be quickly accessible inline.
 * - Use `stackVertical=true` when actions need more prominence or when space is narrow.
 * - Enable `enhancedIcon` to highlight important or priority messages.
 * - Use `isShelved` to indicate messages that have been temporarily set aside.
 *
 * ## Slots
 *
 * Text content for `title`, `description`, and `action-label` supports both props (for plain text) and slots (for rich HTML like `CO<sub>2</sub>`).
 * To use a slot, set the corresponding `has*Slot` prop to `true`.
 *
 * | Slot Name        | Enabled By               | Purpose                                           |
 * |------------------|--------------------------|---------------------------------------------------|
 * | `title`          | `hasTitleSlot=true`      | Message title. Use slot for rich HTML.            |
 * | `description`    | `hasDescriptionSlot=true`| Message description. Use slot for rich HTML.      |
 * | `action-label`   | `hasActionLabelSlot=true`| Primary action button label. Use slot for rich HTML. |
 * | `primary-icon`   | `hasPrimaryIcon=true`    | Main icon representing message type or status.    |
 * | `secondary-icon` | `hasSecondaryIcon=true`  | Additional icon for secondary status or context.  |
 * | `trailing-icon`  | `hasTrailingIcon=true` (horizontal only) | Icon button after action buttons. |
 *
 * ## Events
 *
 * - `message-click` – Fired when the message item is clicked. Detail includes `{ open: boolean }`.
 * - `primary-action-click` – Fired when the primary action button is clicked.
 * - `secondary-action-click` – Fired when the secondary action button is clicked.
 *
 * ## Example
 *
 * Using props (simple text):
 * ```html
 * <obc-message-menu-item
 *   size="double-line"
 *   title="System Update"
 *   description="A new update is available for installation."
 *   day="Yesterday"
 *   time="14:32"
 *   primaryActionLabel="Install"
 *   hasPrimaryIcon
 * >
 *   <obi-placeholder slot="primary-icon"></obi-placeholder>
 * </obc-message-menu-item>
 * ```
 *
 * Using slots (rich HTML):
 * ```html
 * <obc-message-menu-item
 *   size="double-line"
 *   day="Yesterday"
 *   time="14:32"
 *   hasPrimaryIcon
 *   hasTitleSlot
 *   hasDescriptionSlot
 *   hasActionLabelSlot
 * >
 *   <span slot="title">High CO<sub>2</sub> level</span>
 *   <span slot="description">CO<sub>2</sub> concentration exceeds safe limits.</span>
 *   <span slot="action-label">Acknowledge</span>
 *   <obi-placeholder slot="primary-icon"></obi-placeholder>
 * </obc-message-menu-item>
 * ```
 *
 * @slot title - Message title (shown when `hasTitleSlot` is true).
 * @slot description - Message description (shown when `hasDescriptionSlot` is true).
 * @slot action-label - Primary action button label (shown when `hasActionLabelSlot` is true).
 * @slot primary-icon - Main icon representing the message type or status (shown when `hasPrimaryIcon` is true).
 * @slot secondary-icon - Additional icon for secondary status/context (shown when `hasSecondaryIcon` is true).
 * @slot trailing-icon - Icon after action buttons, horizontal layout only (shown when `hasTrailingIcon` is true).
 * @fires message-click {CustomEvent<{open: boolean}>} Fired when the message item is clicked.
 * @fires primary-action-click {CustomEvent<void>} Fired when the primary action button is clicked.
 * @fires secondary-action-click {CustomEvent<void>} Fired when the secondary action button is clicked.
 */
export declare class ObcMessageMenuItem extends LitElement {
    size: ObcMessageMenuItemSize;
    stackVertical: boolean;
    enhancedIcon: boolean;
    open: boolean;
    title: string;
    description: string;
    day: string;
    time: string;
    primaryActionLabel: string;
    secondaryActionLabel: string;
    hasPrimaryIcon: boolean;
    hasSecondaryIcon: boolean;
    hasTrailingIcon: boolean;
    isShelved: boolean;
    hasActionLabelSlot: boolean;
    private get activeSize();
    private get hasTimestamp();
    private get hasDay();
    private get hasPrimaryAction();
    private get hasSecondaryAction();
    private get isVertical();
    private handleKeyDown;
    private handleMessageClick;
    private handlePrimaryActionClick;
    private handleSecondaryActionClick;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-message-menu-item': ObcMessageMenuItem;
    }
}
//# sourceMappingURL=message-menu-item.d.ts.map