import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { Action, Attachment } from 'stream-chat';
import { ModalContext, DefaultStreamChatGenerics, AttachmentConfigration, VideoAttachmentConfiguration, ImageAttachmentConfiguration, AttachmentContext, CustomAttachmentListContext } from '../types';
import { ChannelService } from '../channel.service';
import { CustomTemplatesService } from '../custom-templates.service';
import { AttachmentConfigurationService } from '../attachment-configuration.service';
import { MessageService } from '../message.service';
import * as i0 from "@angular/core";
/**
 * The `AttachmentList` component displays the attachments of a message
 */
export declare class AttachmentListComponent implements OnChanges, OnInit, OnDestroy {
    readonly customTemplatesService: CustomTemplatesService;
    private channelService;
    private attachmentConfigurationService;
    private messageService;
    /**
     * The id of the message the attachments belong to
     */
    messageId: string | undefined;
    /**
     * The parent id of the message the attachments belong to
     */
    parentMessageId: string | undefined;
    /**
     * The attachments to display
     */
    attachments: Attachment<DefaultStreamChatGenerics>[];
    /**
     * Emits the state of the image carousel window
     */
    readonly imageModalStateChange: EventEmitter<"closed" | "opened">;
    class: string;
    orderedAttachments: Attachment<DefaultStreamChatGenerics>[];
    customAttachments: Attachment<DefaultStreamChatGenerics>[];
    imagesToView: Attachment<DefaultStreamChatGenerics>[];
    imagesToViewCurrentIndex: number;
    customAttachmentsTemplate?: TemplateRef<CustomAttachmentListContext>;
    private modalContent;
    private attachmentConfigurations;
    private subscriptions;
    constructor(customTemplatesService: CustomTemplatesService, channelService: ChannelService, attachmentConfigurationService: AttachmentConfigurationService, messageService: MessageService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    trackByUrl(_: number, attachment: Attachment): {} | undefined;
    isImage(attachment: Attachment): boolean;
    isSvg(attachment: Attachment): boolean;
    isFile(attachment: Attachment): boolean;
    isGallery(attachment: Attachment): boolean;
    isVideo(attachment: Attachment): boolean | "" | undefined;
    isCard(attachment: Attachment): boolean;
    isVoiceMessage(attachment: Attachment): boolean;
    hasFileSize(attachment: Attachment<DefaultStreamChatGenerics>): boolean | "" | 0 | undefined;
    getFileSize(attachment: Attachment<DefaultStreamChatGenerics>): string;
    getModalContext(): ModalContext;
    trimUrl(url?: string | null): string | null;
    sendAction(action: Action): void;
    trackByActionValue(_: number, item: Action): string | undefined;
    openImageModal(attachments: Attachment[], selectedIndex?: number): void;
    stepImages(dir: -1 | 1): void;
    trackByImageUrl(_: number, item: Attachment): {} | undefined;
    getAttachmentContext(attachment: Attachment<DefaultStreamChatGenerics>): AttachmentContext;
    getImageAttachmentConfiguration(attachment: Attachment, type: 'gallery' | 'single', element: HTMLElement): ImageAttachmentConfiguration;
    getCarouselImageAttachmentConfiguration(attachment: Attachment, element: HTMLElement): ImageAttachmentConfiguration;
    getVideoAttachmentConfiguration(attachment: Attachment, element: HTMLElement): VideoAttachmentConfiguration;
    getCardAttachmentConfiguration(attachment: Attachment): AttachmentConfigration;
    get isImageModalPrevButtonVisible(): boolean;
    get isImageModalNextButtonVisible(): boolean;
    private createGallery;
    private closeImageModal;
    static ɵfac: i0.ɵɵFactoryDeclaration<AttachmentListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AttachmentListComponent, "stream-attachment-list", never, { "messageId": "messageId"; "parentMessageId": "parentMessageId"; "attachments": "attachments"; }, { "imageModalStateChange": "imageModalStateChange"; }, never, never, false, never>;
}
