import { ElementRef } from '@angular/core';
import { ControlValueAccessor, FormGroup } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { AudioPlayerService, Track } from '@sixbell-telco/sdk/components/audio-player';
import { FileExtension } from '../shared/types/file-upload';
import * as i0 from "@angular/core";
/**
* A customizable drag-and-drop file upload zone with audio playback capabilities
*
* @remarks
* Supports file validation, multi-file uploads, and audio file preview/playback.
* Implements ControlValueAccessor for Angular form integration.
*
* @example
* ```html
*
* ```
*
* @example
* ```html
*
*
* ```
*/
export declare class DropzoneComponent implements ControlValueAccessor {
/** @internal Translation service instance */
translateService: TranslateService;
/** @internal Audio player service instance */
audioService: AudioPlayerService;
/**
* Maximum number of allowed files
* @defaultValue 1
*/
maxFiles: import("@angular/core").InputSignal;
/**
* Maximum file size in bytes (0 for unlimited)
* @defaultValue 0
*/
maxFileSize: import("@angular/core").InputSignal;
/**
* Whether to display uploaded files list
* @defaultValue true
*/
showFiles: import("@angular/core").InputSignal;
/**
* Allowed file extensions (e.g., ['.pdf', '.mp3'])
*/
extensions: import("@angular/core").InputSignal;
/**
* Whether upload is in progress
* @defaultValue false
*/
uploading: import("@angular/core").InputSignal;
/**
* Whether the component is disabled
* @defaultValue false
*/
disabled: import("@angular/core").ModelSignal;
/**
* Whether multiple files can be uploaded
* @defaultValue false
*/
multiple: import("@angular/core").InputSignal;
/**
* HTML name attribute for the input
* @defaultValue 'file'
*/
name: import("@angular/core").InputSignal;
/**
* Computed accept attribute for file input
* @internal
*/
accept: import("@angular/core").Signal;
/** @internal Tracks audio player open state */
opened: import("@angular/core").WritableSignal;
/** @internal Tracks blur events for validation */
private readonly blurTrigger;
/**
* Parent form group for reactive forms
*/
parentForm: import("@angular/core").InputSignal | null>;
/**
* Form control name for reactive forms
*/
formControlName: import("@angular/core").InputSignal;
/**
* Emitted when valid files are dropped/selected
*/
fileDropped: import("@angular/core").OutputEmitterRef;
/**
* Emitted when a file is removed
*/
fileRemoved: import("@angular/core").OutputEmitterRef;
/**
* Stop event propagation for activation events
* @defaultValue false
*/
stopPropagation: import("@angular/core").InputSignal;
/**
* Event emitted on click
*/
clicked: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on pointer down
*/
pointerDown: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on Enter keydown
*/
keyDownEnter: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on Space keydown
*/
keyDownSpace: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on activation (click or keyboard)
*/
triggered: import("@angular/core").OutputEmitterRef;
/** @internal Current list of uploaded files */
files: import("@angular/core").WritableSignal;
/** @internal Drag state tracker */
isDragging: import("@angular/core").WritableSignal;
/** @internal Validation error message */
errorMessage: import("@angular/core").WritableSignal;
/** @internal Change callback function */
private onControlChange;
/** @internal Touch callback function */
private onControlTouch;
/** @internal Reference to file input element */
fileInput: import("@angular/core").Signal | undefined>;
/** @internal Material icon references */
iconDelete: string;
iconDownload: string;
iconInsertDriveFile: string;
iconCloudUpload: string;
iconError: string;
iconVisibility: string;
iconVisibilityOff: string;
/**
* Computed audio tracks from uploaded files
* @internal
*/
tracks: import("@angular/core").Signal