import { EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { Observable } from 'rxjs';
import { AttachmentUpload, CustomAttachmentPreviewListContext } from '../types';
import { CustomTemplatesService } from '../custom-templates.service';
import { AttachmentService } from '../attachment.service';
import { Attachment } from 'stream-chat';
import * as i0 from "@angular/core";
/**
 * The `AttachmentPreviewList` component displays a preview of the attachments uploaded to a message. Users can delete attachments using the preview component, or retry upload if it failed previously.
 */
export declare class AttachmentPreviewListComponent implements OnInit, OnDestroy {
    private customTemplateService;
    readonly attachmentService: AttachmentService;
    /**
     * A stream that emits the current file uploads and their states
     */
    attachmentUploads$: Observable<AttachmentUpload[]> | undefined;
    /**
     * An output to notify the parent component if the user tries to retry a failed upload
     */
    readonly retryAttachmentUpload: EventEmitter<File>;
    /**
     * An output to notify the parent component if the user wants to delete a file
     */
    readonly deleteAttachment: EventEmitter<AttachmentUpload>;
    customAttachments: Attachment[];
    customAttachmentsPreview?: TemplateRef<CustomAttachmentPreviewListContext>;
    private subscriptions;
    constructor(customTemplateService: CustomTemplatesService, attachmentService: AttachmentService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    attachmentUploadRetried(file: File): void;
    attachmentDeleted(upload: AttachmentUpload): void;
    trackByFile(_: number, item: AttachmentUpload): File;
    static ɵfac: i0.ɵɵFactoryDeclaration<AttachmentPreviewListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AttachmentPreviewListComponent, "stream-attachment-preview-list", never, { "attachmentUploads$": "attachmentUploads$"; }, { "retryAttachmentUpload": "retryAttachmentUpload"; "deleteAttachment": "deleteAttachment"; }, never, never, false, never>;
}
