import { LitElement, PropertyValues, PropertyValueMap } from 'lit';
import { PersistStateController } from './controllers/persist-state-controller';
import { AppRef, AppType } from './types/app.types';
import { ConversationTypeGuid, ConversationType } from './types/conversations.types';
import { QueryController } from './controllers/query-controller';
import { BotType } from './types/users.types';
import { Constructor } from './types/generic.types';
import { ProductTypes } from './types/product.types';
declare const WyMessenger_base: Constructor<import('./mixins/block-mixin').BlockProps & import('./mixins/block-mixin').BlockContextProviderProps & import('./mixins/block-mixin').BlockContextProps & import('./mixins/block-mixin').BlockSettingProps & import('./types/product.types').ProductFeatureProps> & typeof LitElement;
export declare class WyMessenger extends WyMessenger_base {
    static styles: import('lit').CSSResult[];
    productType: ProductTypes;
    conversationTypes: ConversationTypeGuid[];
    bot?: string;
    botUser?: BotType;
    conversationId: number | null;
    protected conversation?: ConversationType;
    protected conversationQuery: QueryController<ConversationType>;
    protected botQuery: QueryController<BotType>;
    protected persistState: PersistStateController<this>;
    /**
     * A keyboard-consuming element releases focus.
     * @event release-focus
     */
    protected releaseFocusEvent: () => CustomEvent<undefined>;
    /**
     * Checks if a conversation belongs to Messenger.
     *
     * @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>;
    /**
     * Set the active conversation.
     *
     * @param id {number} - The id of the conversation to select.
     */
    selectConversation(id: number): Promise<void>;
    /**
     * Deselects any active conversation.
     */
    clearConversation(): void;
    constructor();
    protected willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
    protected update(changedProperties: PropertyValueMap<this>): void;
    render(): import('../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
export type WyMessengerType = Constructor<WyMessenger>;
export {};
//# sourceMappingURL=wy-messenger.d.ts.map