import { PropertyValues } from 'lit';
import { PersistStateController } from './controllers/persist-state-controller';
import { ThemeController } from './controllers/theme-controller';
import { AppRef, AppType, AppTypeGuid, AppTypeString } from './types/app.types';
import { QueryController } from './controllers/query-controller';
import { WeavyComponent } from './classes/weavy-component';
import { ComponentFeatures } from './contexts/features-context';
/**
 * The conversation app type strings and app type guids associated with the Messenger.
 */
export declare const MessengerTypes: Map<string, AppTypeGuid | AppTypeString>;
/**
 * The conversation app type strings and app type guids specific for agents in Messenger.
 */
export declare const MessengerAgentTypes: Map<string, AppTypeGuid | AppTypeString>;
export declare const WY_MESSENGER_TAGNAME = "wy-messenger";
declare global {
    interface HTMLElementTagNameMap {
        [WY_MESSENGER_TAGNAME]: WyMessenger;
    }
}
/**
 * Weavy messenger component to render multiple one-to-one conversations, group chats or agent conversations.
 *
 * @element wy-messenger
 * @class WyMessenger
 * @extends {WeavyComponent}
 * @fires {WyPreviewOpenEventType} wy-preview-open - Fired when a preview overlay is about to open.
 * @fires {WyPreviewCloseEventType} wy-preview-close - Fired when a preview overlay is closed.
 *
 * @slot actions - Buttons placed in the top right of the conversation list.
 * @slot conversation-new - The button for creating a new conversation. Replaces the button.
 */
export declare class WyMessenger extends WeavyComponent {
    static styles: import('lit').CSSResult[];
    componentFeatures: ComponentFeatures;
    protected theme: ThemeController;
    appTypes: AppTypeGuid[];
    get agent(): string | undefined;
    set agent(agent: string | undefined);
    /**
     * Placeholder text for the message editor. Overrides default text.
     */
    placeholder?: string;
    conversationId?: number | null;
    protected conversationQuery: QueryController<AppType>;
    protected persistState: PersistStateController<this>;
    private conversationNewRef;
    private conversationListRef;
    /**
     * A keyboard-consuming element releases focus.
     * @event release-focus
     */
    protected releaseFocusEvent: () => CustomEvent<undefined>;
    /**
     * Checks if a conversation belongs to Messenger.
     *
     * @deprecated
     * @param conversation {AppRef | AppType | number} - The conversation or id to check if it belongs to Messenger.
     * @returns Promise<Boolean>
     */
    conversationBelongsToMessenger(conversation: AppRef | AppType | number): Promise<boolean>;
    /**
     * Creates a new conversation.
     *
     * - When no members are specified, the user selector is shown.
     * - When in agent mode, a conversation is created instantly.
     *
     * @param members {(number|string)[] | undefined} - Optional array of member id or member uid to bypass user selection dialog.
     */
    createConversation(members?: (number | string)[]): Promise<void>;
    /**
     * Set the active conversation.
     *
     * @deprecated
     * @param id {number} - The id of the conversation to select.
     */
    selectConversation(id: number): boolean;
    /**
     * Deselects any active conversation.
     * @deprecated
     */
    clearConversation(): void;
    protected willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
    render(): import('../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
//# sourceMappingURL=wy-messenger.d.ts.map