import { AfterViewInit, ElementRef } from '@angular/core';
import { EmlAttachment } from '../model';
import * as i0 from "@angular/core";
interface DisplayItem {
    trackId: string;
    attachment: EmlAttachment;
    isClone: boolean;
}
export declare class AttachmentCarouselComponent implements AfterViewInit {
    #private;
    attachments: import("@angular/core").InputSignal<EmlAttachment[]>;
    infinite: import("@angular/core").InputSignal<boolean>;
    attachmentClick: import("@angular/core").OutputEmitterRef<EmlAttachment>;
    readonly needsCarousel: import("@angular/core").WritableSignal<boolean>;
    readonly displayItems: import("@angular/core").Signal<DisplayItem[]>;
    readonly scrollContainer: import("@angular/core").Signal<ElementRef<HTMLElement>>;
    readonly startSentinel: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
    readonly endSentinel: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
    constructor();
    ngAfterViewInit(): void;
    protected onScroll(): void;
    protected onMouseDown(event: MouseEvent): void;
    protected onMouseMove(event: MouseEvent): void;
    protected onMouseUp(): void;
    protected onChipClick(event: MouseEvent, attachment: EmlAttachment): void;
    protected scroll(direction: 'left' | 'right'): void;
    protected formatSize(bytes: number): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<AttachmentCarouselComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AttachmentCarouselComponent, "yuv-attachment-carousel", never, { "attachments": { "alias": "attachments"; "required": true; "isSignal": true; }; "infinite": { "alias": "infinite"; "required": false; "isSignal": true; }; }, { "attachmentClick": "attachmentClick"; }, never, never, true, never>;
}
export {};
