import { LitElement } from 'lit';
import '../../icons/icon-notification-advice.js';
import '../../icons/icon-notification-advice-active.js';
/**
 * Enum for the visual style variants of `<obc-advice-button>`.
 *
 * - `Flat`: Minimal appearance, typically used for inactive or low-emphasis states.
 * - `Normal`: Standard appearance, visually highlighted when active.
 * - `Enhanced`: Most prominent style, used for high emphasis or active states.
 *
 * The selected style affects the button's background, border, and icon color. Note that `Normal` and `Enhanced` styles are only visually distinct when `isActive` is true.
 */
export declare enum AdviceButtonStyle {
    Flat = "flat",
    Normal = "normal",
    Enhanced = "enhanced"
}
/**
 * Payload for the `obc-click` event dispatched by `<obc-advice-button>`.
 *
 * - `count`: The current advice count displayed on the button.
 * - `isActive`: The toggled active state after the click.
 */
export type AdviceButtonClickEvent = CustomEvent<{
    count: number;
    isActive: boolean;
}>;
/**
 * `<obc-advice-button>` – An icon button for surfacing advice, notifications, or contextual alerts, optionally with a counter badge.
 *
 * This component displays an advice or notification icon, with optional count badge and active state. It supports three visual styles (flat, normal, enhanced) and can be customized with a slot for a custom icon. The button toggles its active state on click and emits an event with the updated state and count.
 *
 * Appears as a compact icon button, suitable for toolbars, notification areas, or anywhere a summary of advice/messages should be surfaced without interrupting the main workflow.
 *
 * ## Features
 * - **Visual Styles:**
 *   - `Flat` (default): Minimal, low-emphasis appearance.
 *   - `Normal`: Standard, highlighted when active.
 *   - `Enhanced`: Most prominent, with accent background and border when active.
 * - **Active State:**
 *   - Indicates selection or focus; changes icon and style when `isActive` is true.
 * - **Advice Counter:**
 *   - Optional badge showing the number of advice items (`count`), visible when `showCount` is true and style is `Normal` or `Enhanced`.
 * - **Custom Icon Support:**
 *   - Replace the default icon by providing content in the `icon` slot.
 * - **Accessibility:**
 *   - Configurable `aria-label` and `aria-pressed` for screen readers.
 * - **Event Emission:**
 *   - Emits a custom `obc-click` event with the new state and count when clicked.
 *
 * ## Usage Guidelines
 * Use `<obc-advice-button>` to provide a compact, visually distinct entry point for advice, notifications, or contextual alerts. It is ideal for toolbars, notification panels, or as a summary indicator for advice/messages.
 * - Use the `count` and `showCount` properties to display the number of advice items or notifications.
 * - Choose the style (`buttonStyle`) based on the desired emphasis:
 *   - Use `Flat` for low-priority or inactive states.
 *   - Use `Normal` or `Enhanced` for active or high-priority states (set `isActive` to true for these styles to take effect).
 * - Replace the icon via the `icon` slot if a different symbol is needed.
 * - The button toggles its active state on click and notifies listeners via the `obc-click` event.
 *
 * **TODO(designer):** Clarify recommended scenarios for using each style (Flat, Normal, Enhanced) and any specific guidance for when to show the counter.
 *
 * ## Slots
 *
 * | Slot Name | Renders When... | Purpose |
 * |-----------|----------------|---------|
 * | `icon`    | Always         | Custom icon to replace the default advice/notification icon. |
 *
 * ## Events
 * - `obc-click` – Fired when the button is clicked. Event detail includes `{ count, isActive }` reflecting the new state.
 *
 * ## Example
 * ```
 * <obc-advice-button
 *   buttonStyle="normal"
 *   count="3"
 *   showCount
 *   isActive
 *   ariaLabel="Advice"
 *   @obc-click="${(e) => { ... }}"
 * >
 *   <obi-placeholder slot="icon"></obi-placeholder>
 * </obc-advice-button>
 * ```
 *
 * @slot icon - Custom icon slot (replaces the default advice icon)
 * @fires obc-click {AdviceButtonClickEvent} Fired when the button is clicked.
 */
export declare class ObcAdviceButton extends LitElement {
    /**
     * Visual style of the button.
     *
     * - `flat`: Minimal, low-emphasis appearance (default).
     * - `normal`: Standard, highlighted when active (`isActive` must be true for effect).
     * - `enhanced`: Most prominent, accent background/border when active (`isActive` must be true for effect).
     *
     * @default AdviceButtonStyle.Flat
     */
    buttonStyle: AdviceButtonStyle;
    /**
     * Number of advice items or notifications to display in the badge.
     * Only shown when `showCount` is true and style is `normal` or `enhanced`.
     *
     * @default 0
     */
    count: number;
    /**
     * Whether to display the advice count badge.
     * If false, the count is hidden even if `count` is set.
     *
     * @default false
     */
    showCount: boolean;
    /**
     * Whether the button is in the active/selected state.
     * Changes the icon and style when true.
     *
     * @default false
     */
    isActive: boolean;
    /**
     * Accessibility label for the button.
     * Used for screen readers via `aria-label`.
     *
     * @default "Advice"
     */
    ariaLabel: string;
    render(): import('lit-html').TemplateResult<1>;
    private renderDefaultIcon;
    private handleClick;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-advice-button': ObcAdviceButton;
    }
}
//# sourceMappingURL=advice-button.d.ts.map