import { LitElement } from 'lit';
import '../../icons/icon-alarm-badge.js';
import '../../icons/icon-warning-badge.js';
import '../../icons/icon-caution-badge.js';
import '../../icons/icon-running-color-iec.js';
/**
 * `BadgeSize` – Enum for badge size options.
 *
 * - `regular`: Standard badge size.
 * - `large`: Larger badge size for increased prominence.
 */
export declare enum BadgeSize {
    regular = "regular",
    large = "large"
}
/**
 * `BadgeType` – Enum for badge visual types.
 *
 * - `alarm`: Indicates a critical or urgent state.
 * - `warning`: Indicates a warning or cautionary state.
 * - `caution`: Indicates a less severe caution.
 * - `running`: Indicates an active or running state.
 * - `notification`: Used for general notifications.
 * - `enhance`: Used for enhanced or secondary notifications.
 * - `regular`: Default badge style.
 * - `empty`: Minimal badge with no icon or number.
 * - `automation`: Used for automation-related status.
 * - `outline`: Outline-only style for flat variant.
 */
export declare enum BadgeType {
    alarm = "alarm",
    warning = "warning",
    caution = "caution",
    running = "running",
    notification = "notification",
    enhance = "enhance",
    regular = "regular",
    empty = "empty",
    automation = "automation",
    outline = "outline"
}
/**
 * `BadgeVariant` – Enum for badge visual variants.
 *
 * - `default`: Standard filled badge.
 * - `flat`: Flat badge with minimal background and outline.
 */
export declare enum BadgeVariant {
    default = "default",
    flat = "flat"
}
/**
 * `<obc-badge>` – A compact visual indicator for status, alerts, or notifications, optionally displaying a number and/or icon.
 *
 * Badges are used to draw attention to status changes, counts, or important information in a concise format. They can represent alert states (such as alarm, warning, or running), notification counts, or other contextual statuses. The badge adapts its appearance based on type, size, and variant, and can display an icon, a number, or both.
 *
 * ---
 *
 * ### Features
 * - **Type options:** Supports multiple visual types:
 *   - `regular`: Default neutral badge.
 *   - `alarm`: Highlights critical or urgent states.
 *   - `warning`: Indicates caution or warning.
 *   - `caution`: Used for less severe caution.
 *   - `running`: Represents active or running states.
 *   - `notification`: For general notifications.
 *   - `enhance`: For secondary notifications or emphasis.
 *   - `automation`: For automation-related status.
 *   - `outline`: Outline-only style (flat variant only).
 *   - `empty`: Minimal badge with no icon or number.
 * - **Size options:** `regular` (default) and `large` for increased visibility.
 * - **Variants:**
 *   - `default`: Filled background and border.
 *   - `flat`: Minimal background, outline, and lighter appearance.
 * - **Icon support:** Can display a contextual icon (built-in for alarm, warning, caution, running; custom via slot for others).
 * - **Number display:** Optionally shows a number (e.g., count of notifications).
 * - **Hide number:** Can suppress the number for a purely symbolic badge.
 * - **Custom icon slot:** For types without a built-in icon, developers can provide a custom icon using the `badge-icon` slot.
 * - **Responsive layout:** Adjusts size and spacing based on the `size` property.
 *
 * ---
 *
 * ### Usage Guidelines
 * - Use `obc-badge` to highlight status, counts, or alerts in a compact form, such as notification indicators, unread message counts, or system status.
 * - Choose the `type` that matches the semantic meaning (e.g., `alarm` for critical, `warning` for caution, `running` for active).
 * - Use the `number` property to show counts; set `showNumber` to false for symbolic-only badges.
 * - Use the `flat` variant for less prominent or secondary contexts.
 * - For custom icons, provide an icon element in the `badge-icon` slot.
 * - Avoid using badges for persistent or detailed information; they are intended for brief, glanceable status.
 * - **TODO(designer):** Confirm recommended use cases for `enhance`, `automation`, and `outline` types, and clarify when to use `empty` type versus hiding the badge entirely.
 *
 * ---
 *
 * ### Slots
 *
 * | Slot Name     | Renders When...                | Purpose                                             |
 * |---------------|-------------------------------|-----------------------------------------------------|
 * | `badge-icon`  | `showIcon` is true and `type` is not one of `alarm`, `warning`, `caution`, `running` | Custom icon for the badge (e.g., `<obi-placeholder>`). |
 *
 * ---
 *
 * ### Properties and Attributes
 * - `number` (number): The numeric value to display in the badge. Defaults to 0.
 * - `showNumber` (boolean): If true, the number is shown. Set to `false` for symbolic or icon-only badges.
 * - `type` (string): Visual style of the badge. See **Type options** above for possible values. Defaults to `regular`.
 * - `size` (string): Badge size, either `regular` (default) or `large`.
 * - `variant` (string): Visual variant, either `default` (filled) or `flat` (minimal). Defaults to `default`.
 * - `showIcon` (boolean): If true, displays an icon appropriate to the badge type. For custom types, supply an icon in the `badge-icon` slot.
 *
 * ---
 *
 * ### Best Practices and Constraints
 * - Use badge types consistently to communicate status meaningfully.
 * - For accessibility, ensure the badge's meaning is also conveyed via text or ARIA attributes if used as a status indicator.
 * - Avoid overloading the badge with large numbers or excessive detail; keep content concise.
 * - The `empty` type is intended for minimal presence—use when a placeholder badge is needed without icon or number.
 * - For custom icons, use OpenBridge icon elements such as `<obi-placeholder>` in the `badge-icon` slot.
 * - The badge does not emit any custom events.
 *
 * ---
 *
 * ### Example
 *
 * ```html
 * <obc-badge type="alarm" number="3" showIcon>
 *   <!-- For custom types, provide an icon: -->
 *   <obi-placeholder slot="badge-icon"></obi-placeholder>
 * </obc-badge>
 * ```
 *
 * In this example, the badge displays an alarm icon and the number 3.
 *
 * @slot badge-icon - Custom icon slot for badge types that do not have a built-in icon (e.g., notification, enhance, automation, outline, or custom types).
 */
export declare class ObcBadge extends LitElement {
    /**
     * The number to display in the badge. Set to 0 for no count.
     *
     * If `showNumber` is false, the number is hidden.
     */
    number: number;
    /**
     * Shows the number in the badge when true.
     *
     * Set to `false` for symbolic or icon-only badges.
     */
    showNumber: boolean;
    /**
     * Visual style/type of the badge.
     *
     * Possible values: `regular`, `alarm`, `warning`, `caution`, `running`, `notification`, `enhance`, `automation`, `outline`, `empty`.
     *
     * Defaults to `regular`.
     */
    type: string;
    /**
     * Badge size.
     *
     * Possible values: `regular` (default), `large`.
     */
    size: string;
    /**
     * Badge variant.
     *
     * - `default`: Filled background and border (default).
     * - `flat`: Minimal background and outline.
     */
    variant: BadgeVariant;
    /**
     * Whether to show an icon in the badge.
     *
     * For built-in types (`alarm`, `warning`, `caution`, `running`), a contextual icon is shown automatically.
     * For other types, provide a custom icon in the `badge-icon` slot.
     */
    showIcon: boolean;
    private get effectiveType();
    private renderIcon;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-badge': ObcBadge;
    }
}
//# sourceMappingURL=badge.d.ts.map