import { TemplateRef } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { AttachmentContext, AttachmentListContext, AttachmentPreviewListContext, AvatarContext, ChannelActionsContext, ChannelHeaderInfoContext, ChannelPreviewContext, ChannelPreviewInfoContext, CommandAutocompleteListItemContext, CustomAttachmentListContext, CustomAttachmentPreviewListContext, CustomAttachmentUploadContext, CustomMetadataContext, DateSeparatorContext, DefaultStreamChatGenerics, DeliveredStatusContext, EmojiPickerContext, IconContext, MentionAutcompleteListItemContext, MentionTemplateContext, MessageActionBoxItemContext, MessageActionsBoxContext, MessageContext, MessageReactionsContext, MessageReactionsSelectorContext, ModalContext, NotificationContext, ReadStatusContext, SendingStatusContext, SystemMessageContext, ThreadHeaderContext, ThreadReplyButtonContext, TypingIndicatorContext, UnreadMessagesIndicatorContext, UnreadMessagesNotificationContext } from './types';
import * as i0 from "@angular/core";
/**
 * A central location for registering your custom templates to override parts of the chat application.
 *
 * For code examples to the different customizations see our [customizations example application](https://github.com/GetStream/stream-chat-angular/tree/master/projects/customizations-example), specifically the [AppComponent](https://github.com/GetStream/stream-chat-angular/tree/master/projects/customizations-example/src/app) (see [README](https://github.com/GetStream/stream-chat-angular/blob/master/README.md#customization-examples) for instructions on how to start the application).
 *
 * You can find the type definitions of the context that is provided for each template [on GitHub](https://github.com/GetStream/stream-chat-angular/blob/master/projects/stream-chat-angu)
 */
export declare class CustomTemplatesService<T extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> {
    /**
     * The autocomplete list item template for mentioning users (used in the [`AutocompleteTextareaComponent`](../components/AutocompleteTextareaComponent.mdx))
     */
    mentionAutocompleteItemTemplate$: BehaviorSubject<TemplateRef<MentionAutcompleteListItemContext> | undefined>;
    /**
     * The autocomplete list item template for commands (used in the [`AutocompleteTextareaComponent`](../components/AutocompleteTextareaComponent.mdx))
     */
    commandAutocompleteItemTemplate$: BehaviorSubject<TemplateRef<CommandAutocompleteListItemContext> | undefined>;
    /**
     * Template used to display an item in the [channel list](../components/ChannelListComponent.mdx) (instead of the default [channal list item](../components/ChannelPreviewComponent.mdx))
     *
     */
    channelPreviewTemplate$: BehaviorSubject<TemplateRef<ChannelPreviewContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used for displaying a [mention inside a message](../code-examples/mention-actions.mdx)
     *
     */
    mentionTemplate$: BehaviorSubject<TemplateRef<MentionTemplateContext> | undefined>;
    /**
     * The template for [emoji picker](../code-examples/emoji-picker.mdx)
     *
     */
    emojiPickerTemplate$: BehaviorSubject<TemplateRef<EmojiPickerContext> | undefined>;
    /**
     * The typing indicator template used in the [message list](../components/MessageListComponent.mdx)
     *
     */
    typingIndicatorTemplate$: BehaviorSubject<TemplateRef<TypingIndicatorContext> | undefined>;
    /**
     * The template used to display a message in the [message list](../components/MessageListComponent.mdx) (instead of the [default message component](../components/MessageComponent.mdx))
     *
     */
    messageTemplate$: BehaviorSubject<TemplateRef<MessageContext> | undefined>;
    /**
     * The template for channel actions displayed in the [channel header](../components/ChannelHeaderComponent.mdx) (by default no channel action is displayed)
     *
     */
    channelActionsTemplate$: BehaviorSubject<TemplateRef<ChannelActionsContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used to display attachments of a [message](../components/MessageComponent.mdx) (instead of the [default attachment list](../components/AttachmentListComponent.mdx))
     *
     */
    attachmentListTemplate$: BehaviorSubject<TemplateRef<AttachmentListContext> | undefined>;
    /**
     * The template used to display attachments in the [message input](../components/MessageInputComponent.mdx) component (instead of the [default attachment preview](../components/AttachmentPreviewListComponent.mdx))
     *
     */
    attachmentPreviewListTemplate$: BehaviorSubject<TemplateRef<AttachmentPreviewListContext> | undefined>;
    /**
     * The template used to display avatars for channels and users (instead of the [default avatar](../components/AvatarComponent.mdx))
     *
     */
    avatarTemplate$: BehaviorSubject<TemplateRef<AvatarContext> | undefined>;
    /**
     * Template for displaying icons (instead of the [default icon component](../components/IconComponent.mdx))
     *
     */
    iconTemplate$: BehaviorSubject<TemplateRef<IconContext> | undefined>;
    /**
     * Template for displaying the loading indicator (instead of the [default loading indicator](../components/LoadingIndicatorComponent.mdx))
     *
     */
    loadingIndicatorTemplate$: BehaviorSubject<TemplateRef<void> | undefined>;
    /**
     * Template for displaying the message actions box (instead of the [default message actions box](../components/MessageActionsBoxComponent.mdx))
     *
     */
    messageActionsBoxTemplate$: BehaviorSubject<TemplateRef<MessageActionsBoxContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used for displaying an item in the [message actions box](../components/MessageActionsBoxComponent.mdx)
     *
     */
    messageActionsBoxItemTemplate$: BehaviorSubject<TemplateRef<MessageActionBoxItemContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used to display the reactions of a [message](../components/MessageComponent.mdx), and the selector to add a reaction to a message (instead of the [default message reactions component](../components/MessageReactionsComponent.mdx))
     *
     */
    messageReactionsTemplate$: BehaviorSubject<TemplateRef<MessageReactionsContext> | undefined>;
    /**
     * The template used to display the reactions of a [message](../components/MessageComponent.mdx), and the selector to add a reaction to a message (instead of the [default message reactions component](../components/MessageReactionsComponent.mdx))
     *
     */
    messageReactionsSelectorTemplate$: BehaviorSubject<TemplateRef<MessageReactionsSelectorContext> | undefined>;
    /**
     * The template used to display a modal window (instead of the [default modal](../components/ModalComponent.mdx))
     *
     */
    modalTemplate$: BehaviorSubject<TemplateRef<ModalContext> | undefined>;
    /**
     * The template used to override the [default notification component](../components/NotificationComponent.mdx)
     *
     */
    notificationTemplate$: BehaviorSubject<TemplateRef<NotificationContext> | undefined>;
    /**
     * The template used for header of a [thread](../components/ThreadComponent.mdx)
     *
     */
    threadHeaderTemplate$: BehaviorSubject<TemplateRef<ThreadHeaderContext> | undefined>;
    /**
     * The template used for displaying the delivered state of the message inside the [message component](../components/MessageComponent.mdx)
     *
     * Displayed for the last message sent by the current user, if the message isn't yet read by anyone
     *
     */
    deliveredStatusTemplate$: BehaviorSubject<TemplateRef<DeliveredStatusContext> | undefined>;
    /**
     * The template used for displaying the sending state of the message inside the [message component](../components/MessageComponent.mdx)
     *
     * Displayed for the last message sent by the current user, if the message is currently being sent
     *
     */
    sendingStatusTemplate$: BehaviorSubject<TemplateRef<SendingStatusContext> | undefined>;
    /**
     * The template used for displaying the sent state of the message inside the [message component](../components/MessageComponent.mdx)
     *
     * Displayed for the last message sent by the current user, if the message is read at least by one user
     *
     */
    readStatusTemplate$: BehaviorSubject<TemplateRef<ReadStatusContext> | undefined>;
    /**
     * Template to display custom metadata inside [message component](../components/MessageComponent.mdx)
     *
     */
    customMessageMetadataTemplate$: BehaviorSubject<TemplateRef<CustomMetadataContext<T>> | undefined>;
    /**
     * The template used to display additional information about a channel under the channel name inside the [channel header component](../components/ChannelHeaderComponent.mdx)
     *
     */
    channelHeaderInfoTemplate$: BehaviorSubject<TemplateRef<ChannelHeaderInfoContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used for displaying file upload/attachment selector inside the [message input](../components/MessageInputComponent.mdx)
     *
     */
    customAttachmentUploadTemplate$: BehaviorSubject<TemplateRef<CustomAttachmentUploadContext> | undefined>;
    /**
     * The template that can be used to override how a single image attachment is displayed inside the [attachment list](../components/AttachmentListComponent.mdx)
     */
    imageAttachmentTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template that can be used to override how a voice recording attachment is displayed inside the [attachment list](../components/AttachmentListComponent.mdx), by default the [voice recording component](../components/VoiceRecordingComponent.mdx) is used
     */
    voiceRecordingAttachmentTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template that can be used to override how a video attachment is displayed inside the [attachment list](../components/AttachmentListComponent.mdx)
     */
    videoAttachmentTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template that can be used to override how image gallery is displayed inside the [attachment list](../components/AttachmentListComponent.mdx)
     */
    galleryAttachmentTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template that can be used to override how a file attachment is displayed inside the [attachment list](../components/AttachmentListComponent.mdx)
     */
    fileAttachmentTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template that can be used to override how a card attachment is displayed inside the [attachment list](../components/AttachmentListComponent.mdx)
     */
    cardAttachmentTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template that can be used to override how attachment actions are displayed inside the [attachment list](../components/AttachmentListComponent.mdx)
     */
    attachmentActionsTemplate$: BehaviorSubject<TemplateRef<AttachmentContext> | undefined>;
    /**
     * The template used to display [system messages](https://getstream.io/chat/docs/javascript/silent_messages/?language=javascript&q=system) indise the [message component](../components/MessageComponent.mdx)
     */
    systemMessageTemplate$: BehaviorSubject<TemplateRef<SystemMessageContext> | undefined>;
    /**
     * The template used to display the date separator inside the [message list](../components/MessageListComponent.mdx)
     */
    dateSeparatorTemplate$: BehaviorSubject<TemplateRef<DateSeparatorContext> | undefined>;
    /**
     * The template used to display unread messages indicator inside the [message list](../components/MessageListComponent.mdx) when the channel is opened
     *
     * This UI element is used to separate unread messages from read messages
     */
    newMessagesIndicatorTemplate$: BehaviorSubject<TemplateRef<UnreadMessagesIndicatorContext> | undefined>;
    /**
     * The template used to display unread messages notification inside the [message list](../components/MessageListComponent.mdx) when the channel is opened
     *
     * Users can use this notification to jump to the first unread message when it's clicked
     */
    newMessagesNotificationTemplate$: BehaviorSubject<TemplateRef<UnreadMessagesNotificationContext> | undefined>;
    /**
     * The template to show if the main message list is empty
     */
    emptyMainMessageListPlaceholder$: BehaviorSubject<TemplateRef<void> | undefined>;
    /**
     * The template to show if the thread message list is empty
     */
    emptyThreadMessageListPlaceholder$: BehaviorSubject<TemplateRef<void> | undefined>;
    /**
     * The template used to display the [message bounce prompt](../components/MessageBouncePromptComponent.mdx)
     */
    messageBouncePromptTemplate$: BehaviorSubject<TemplateRef<void> | undefined>;
    /**
     * Template used to display the channel information inside the [channel list item](../components/ChannelPreviewComponent.mdx)
     *
     */
    channelPreviewInfoTemplate$: BehaviorSubject<TemplateRef<ChannelPreviewInfoContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used to display custom attachment previews in the [message input component](../../components/MessageInputComponent.mdx)
     */
    customAttachmentPreviewListTemplate$: BehaviorSubject<TemplateRef<CustomAttachmentPreviewListContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used to display custom attachments in the [message component](../../components/MessageComponent.mdx)
     */
    customAttachmentListTemplate$: BehaviorSubject<TemplateRef<CustomAttachmentListContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * The template used to display the number of thread replies inside the [message component](../../components/MessageComponent.mdx)
     */
    threadLinkButton$: BehaviorSubject<TemplateRef<ThreadReplyButtonContext<DefaultStreamChatGenerics>> | undefined>;
    /**
     * Template to display custom metadata inside the message bubble of the [message component](../components/MessageComponent.mdx)
     *
     * To properly position your template you should override the `grid-template-areas` of the `.str-chat__message-inner` selector
     */
    customMessageMetadataInsideBubbleTemplate$: BehaviorSubject<TemplateRef<CustomMetadataContext<DefaultStreamChatGenerics>> | undefined>;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<CustomTemplatesService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CustomTemplatesService<any>>;
}
