/**
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { ElementRef, AfterViewChecked, QueryList, AfterViewInit } from '@angular/core';
import { NbChatMessageComponent } from './chat-message.component';
/**
* Conversational UI collection - a set of components for chat-like UI construction.
*
* Main features:
* - different message types support (text, image, file, file group, map, etc)
* - drag & drop for images and files with preview
* - different UI styles
* - custom action buttons (coming soon)
*
* Here's a complete example build in a bot-like app. Type `help` to be able to receive different message types.
* Enjoy the conversation and the beautiful UI.
* @stacked-example(Showcase, chat/chat-showcase.component)
*
* Basic chat configuration and usage:
* ```ts
*
*
*
*
*
*
*
* ```
* ### Installation
*
* Import `NbChatModule` to your feature module.
* ```ts
* @NgModule({
* imports: [
* // ...
* NbChatModule,
* ],
* })
* export class PageModule { }
* ```
*
* If you need to provide an API key for a `map` message type (which is required by Google Maps)
* you may use `NbChatModule.forRoot({ ... })` call if this is a global app configuration
* or `NbChatModule.forChild({ ... })` for a feature module configuration:
*
* ```ts
* @NgModule({
* imports: [
* // ...
* NbChatModule.forRoot({ messageGoogleMapKey: 'MAP_KEY' }),
* ],
* })
* export class AppModule { }
*
* ### Usage
*
* There are three main components:
* ```ts
*
* // chat container
*
*
* // chat form with drag&drop files feature
*
*
* // chat message, available multiple types
* ```
*
* Two users conversation showcase:
* @stacked-example(Conversation, chat/chat-conversation-showcase.component)
*
* Chat UI is also available in different colors by specifying a `[status]` input:
*
* @stacked-example(Colored Chat, chat/chat-colors.component)
*
* Also it is possible to configure sizes through `[size]` input:
*
* @stacked-example(Chat Sizes, chat/chat-sizes.component)
*
* @styles
*
* chat-font-size:
* chat-fg:
* chat-bg:
* chat-border-radius:
* chat-fg-text:
* chat-height-xxsmall:
* chat-height-xsmall:
* chat-height-small:
* chat-height-medium:
* chat-height-large:
* chat-height-xlarge:
* chat-height-xxlarge:
* chat-border:
* chat-padding:
* chat-shadow:
* chat-separator:
* chat-active-bg:
* chat-disabled-bg:
* chat-disabled-fg:
* chat-primary-bg:
* chat-info-bg:
* chat-success-bg:
* chat-warning-bg:
* chat-danger-bg:
*/
export declare class NbChatComponent implements AfterViewChecked, AfterViewInit {
static readonly SIZE_XXSMALL = "xxsmall";
static readonly SIZE_XSMALL = "xsmall";
static readonly SIZE_SMALL = "small";
static readonly SIZE_MEDIUM = "medium";
static readonly SIZE_LARGE = "large";
static readonly SIZE_XLARGE = "xlarge";
static readonly SIZE_XXLARGE = "xxlarge";
static readonly STATUS_ACTIVE = "active";
static readonly STATUS_DISABLED = "disabled";
static readonly STATUS_PRIMARY = "primary";
static readonly STATUS_INFO = "info";
static readonly STATUS_SUCCESS = "success";
static readonly STATUS_WARNING = "warning";
static readonly STATUS_DANGER = "danger";
size: string;
status: string;
accent: string;
title: string;
readonly xxsmall: boolean;
readonly xsmall: boolean;
readonly small: boolean;
readonly medium: boolean;
readonly large: boolean;
readonly xlarge: boolean;
readonly xxlarge: boolean;
readonly active: boolean;
readonly disabled: boolean;
readonly primary: boolean;
readonly info: boolean;
readonly success: boolean;
readonly warning: boolean;
readonly danger: boolean;
readonly hasAccent: string;
/**
* Chat size, available sizes:
* xxsmall, xsmall, small, medium, large, xlarge, xxlarge
* @param {string} val
*/
private setSize;
/**
* Chat status color (adds specific styles):
* active, disabled, primary, info, success, warning, danger
* @param {string} val
*/
private setStatus;
scrollable: ElementRef;
messages: QueryList;
ngAfterViewChecked(): void;
ngAfterViewInit(): void;
}