import { nothing, PropertyValueMap } from 'lit';
import { AppTypeGuid } from './types/app.types';
import { ConversationFilterProps, UnreadConversationsController, UnreadConversationsProps } from './controllers/unread-conversations-controller';
import { BadgeAppearanceType, PositionType } from './types/ui.types';
import { WeavyTypeComponent } from './classes/weavy-type-component';
import { ThemeController } from './controllers/theme-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-messenger-badge": WyMessengerBadge;
    }
}
/**
 * Weavy Messenger badge component that renders a realtime badge for the number of unread conversations.
 * The badge fits well into a button or similar.
 * The badge is automatically updated when new messages awaits and when messages have been read.
 *
 * The badge can optionally be configured in _agent mode_, by defining the `agent` property, to only show the count for conversations with a given [AI agent](https://www.weavy.com/docs/learn/integrations/agents).
 *
 * When the `unread` count property changes, the component fires a `"wy-unread"` event with the updated count.
 * You can listen to the event to use the unread count for something else, and you can also turn off the component rendering by setting the `badge` property to `"none"`.
 *
 * ** Component layout **
 *
 * The badge displays as an inline badge, matching normal text per default.
 * It has a filled background with rounded edge.
 * The size and font-size is relative to the current font-size where it's placed, defaulting to `0.75em` for the badge `font-size` and `0.3333em` of the badge *font-size* for the `padding`.
 * The badge is only displayed when there is an unread count of 1 or higher.
 *
 * > When placing the badge in a `<button>` element, note that buttons initially have a `font-size` of `13.3333px` instead of inheriting font-size from it's parents.
 *
 * Setting the `badge` property to `"compact"` reduces the padding and size to occupy less visual space.
 * It can also be set to `"dot"` to remove the text, only indicating that there is unread conversations without any count.
 *
 * The `badgePosition` property can be changed from `"inline"` to `"top-right"` or any other corner,
 * to give it absolute positioning over the top-right corner.
 * The absolute positioning is relative to the closest parent element with set CSS `position`, for instance `relative` positioning.
 *
 * **Used sub components:**
 *
 * - [`<wy-badge>`](./components/ui/wy-badge.ts)
 *
 * @tagname wy-messenger-badge
 * @fires {WyUnreadEventType} wy-unread - Fired when the number of unread conversations change.
 *
 * @example <caption>Inline Messenger badge in a text</caption>
 *
 * Display a badge that shows unread count and tracks messages and conversations for the authenticated user.
 *
 * ```html
 * <div>Messenger <wy-messenger-badge></wy-messenger-badge></div>
 * ```
 *
 * @example <caption>Filtered Messenger badge using agent mode</caption>
 *
 * Only displays the count for conversations with the built-in `assistant` agent.
 *
 * ```html
 *  <wy-messenger-badge agent="assistant"></wy-messenger-badge>
 * ```
 *
 * @example <caption>Compact cornered Messenger badge</caption>
 *
 * Displays a _compact_ badge in the top-right corner of a button with adjusted font-size.
 * Note that the badge position is relative to its closest positioned ancestor element, therefore we need to set CSS `position` on the button.
 *
 * ```html
 * <button style="position: relative; font-size: 1rem;">
 *   <span>Messenger</span>
 *   <wy-messenger-badge badge="compact" badgePosition="top-right"></wy-messenger-badge>
 * </button>
 * ```
 */
export declare class WyMessengerBadge extends WeavyTypeComponent implements UnreadConversationsProps, ConversationFilterProps {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected theme: ThemeController;
    /** @internal */
    protected unreadConversations: UnreadConversationsController;
    /**
     * Disabled link matching/consuming.
     * @internal
     */
    matchesLink(): boolean;
    /**
     * Conversation types included in the unread count.
     */
    componentTypes: AppTypeGuid[];
    /**
     * Display size of the badge.
     *
     * @type {"count" | "compact" | "dot" | "none"}
     * @default "count"
     */
    badge: BadgeAppearanceType;
    /**
     * Positioning of the badge.
     *
     * @type {"inline" | "top-right" | "bottom-right" | "bottom-left" | "top-left"}
     * @default "inline"
     */
    badgePosition: PositionType;
    /**
     * Agent uid filter. When set, unread counts are limited to the agent chat.
     */
    set agent(agent: string | undefined);
    get agent(): string | undefined;
    /**
     * Current unread conversation count.
     */
    get unread(): number;
    willUpdate(changedProperties: PropertyValueMap<this>): Promise<void>;
    render(): import('../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | typeof nothing;
}
//# sourceMappingURL=wy-messenger-badge.d.ts.map