import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { HasElementRef } from '@fundamental-ngx/cdk/utils';
import { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';
import { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';
import { UploadCollectionTitleContainerDirective, UploadCollectionTitleDirective } from './upload-collection-simple.directives';
import * as i0 from "@angular/core";
export declare class UploadCollectionItemDirective implements AfterContentInit, OnDestroy, AfterViewInit, HasElementRef {
    /** The name of the file, not including the type extension. */
    fileName: string;
    /** The file type extension. */
    extension: string;
    /** @hidden */
    _formItemComponent: UploadCollectionFormItemComponent;
    /** @hidden */
    _titleDirective: UploadCollectionTitleDirective;
    /** @hidden */
    _buttonGroupComponent: UploadCollectionButtonGroupComponent;
    /** @hidden */
    _titleContainerDirective: UploadCollectionTitleContainerDirective;
    /** Event emitted when the user changes a file name. */
    readonly fileNameChanged: EventEmitter<any>;
    /** Event emitted when presses the delete button. */
    readonly deleteClicked: EventEmitter<any>;
    /** @hidden */
    fileNameFull: string;
    /** @hidden */
    titleWidth: number;
    /** @hidden used to compare to the current width to know whether to collapse or expand title */
    previousContainerWidth: number;
    /** @hidden */
    containerWidth: number;
    /** @hidden */
    readonly elementRef: ElementRef<any>;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    onResize(): void;
    /** @hidden */
    ngAfterContentInit(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** @hidden */
    private _handleOkClickedSubscription;
    /** @hidden */
    private _handleEditClickedSubscription;
    /** @hidden */
    private _handleDeleteClickedSubscription;
    /** @hidden */
    private _handleFormItemInputChangedSubscription;
    /** @hidden */
    private getTitleWidth;
    /** @hidden */
    private getContainerWidth;
    /**
     * @hidden
     *
     * truncates the string by cutting out excess length in the middle and replacing with '...'
     */
    private truncateTitle;
    /**
     * @hidden
     *
     * determines if file title needs to be truncated given container constraint.
     */
    private resizeFileTitle;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadCollectionItemDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<UploadCollectionItemDirective, "[fd-upload-collection-item]", never, { "fileName": { "alias": "fileName"; "required": false; }; "extension": { "alias": "extension"; "required": false; }; }, { "fileNameChanged": "fileNameChanged"; "deleteClicked": "deleteClicked"; }, ["_formItemComponent", "_titleDirective", "_buttonGroupComponent", "_titleContainerDirective"], never, true, never>;
}
