import { OverlayRef } from '@angular/cdk/overlay'; import { InjectionToken, OnDestroy, TemplateRef } from '@angular/core'; import { KbqDefaultSizes } from '@koobiq/components/core'; import { KbqEmptyState } from '@koobiq/components/empty-state'; import { KbqMultipleFileUploadComponent } from './multiple-file-upload.component'; import { KbqDrop } from './primitives'; import { KbqSingleFileUploadComponent } from './single-file-upload.component'; import * as i0 from "@angular/core"; import * as i1 from "@angular/cdk/a11y"; /** Dropzone overlay content configuration. */ export type KbqDropzoneData = Partial<{ /** Optional caption text displayed below the title. */ caption: string; /** Visual size of the dropzone empty state content. */ size: KbqDefaultSizes; /** Title text displayed in the dropzone; falls back to localized default. */ title: string; /** Whether focus should be automatically captured when the overlay opens. */ autoCapture: boolean; }>; /** Injection token that can be used to access the data that was passed in to a modal. */ export declare const KBQ_DROPZONE_DATA: InjectionToken>; /** * Determines if a mouse event occurred outside the viewport boundaries. * @docs-private */ export declare const isOutsideViewport: ({ event, innerWidth, innerHeight, xAxisMinThreshold, yAxisMinThreshold }: { event: MouseEvent; innerWidth: number; innerHeight: number; xAxisMinThreshold: number; yAxisMinThreshold: number; }) => boolean; /** * Service that provides full-screen drag-and-drop overlay functionality. */ export declare class KbqFullScreenDropzoneService extends KbqDrop implements OnDestroy { /** Completely terminates all subscriptions when emitted */ private readonly dropAbort; private readonly overlay; private readonly window; private readonly injector; private readonly ngZone; private overlayRef?; constructor(); ngOnDestroy(): void; /** * Initializes drag-and-drop event listeners on the document body. * @param config - Dropzone configuration */ init(config?: KbqDropzoneData): void; /** Stops all drag-and-drop event listeners and cleans up subscriptions. */ stop(): void; /** * Opens the dropzone overlay. * @param config - Dropzone configuration */ open(config?: KbqDropzoneData): void; /** Closes and disposes the overlay. */ close(): void; /** @docs-private */ onDrop(event: DragEvent): void; /** @docs-private */ protected createOverlay(): OverlayRef; /** @see https://bugs.webkit.org/show_bug.cgi?id=66547 */ private onDragLeave; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Directive that turns an element into a local drag-and-drop zone. * * Displays an overlay over the host element on drag enter, handles drag events, * and emits dropped files to a connected file upload component. */ export declare class KbqLocalDropzone extends KbqDrop { /** File upload component to connect dropped files to */ readonly connectedTo: import("@angular/core").InputSignal; private readonly elementRef; private readonly rects; private readonly overlay; private readonly viewContainerRef; private readonly injector; private readonly ngZone; private readonly destroyRef; private overlayRef?; constructor(); /** Opens the dropzone overlay positioned over the host element. */ open(config?: KbqDropzoneData): void; /** Closes and disposes the overlay. */ close(): void; /** @docs-private */ onDrop(event: DragEvent): void; /** * Initializes drag-and-drop event listeners on the overlay element. * Handles dragover, dragleave, and drop events to manage overlay state and file drops. */ protected init(): void; /** Creates an overlay positioned and sized to match the host element. */ protected createOverlay(): OverlayRef; private onDragLeave; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** Component that displays an empty state for file upload areas. */ export declare class KbqFileUploadEmptyState extends KbqEmptyState { /** Title text to display below the upload icon */ title: import("@angular/core").InputSignal; /** Caption text or template to display below the title */ caption: import("@angular/core").InputSignal | undefined>; constructor(); /** @docs-private */ protected isTemplateRef(value: string | TemplateRef): value is TemplateRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export declare class KbqDropzoneContent { /** @docs-private */ protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null; /** @docs-private */ protected readonly config: Partial<{ /** Optional caption text displayed below the title. */ caption: string; /** Visual size of the dropzone empty state content. */ size: KbqDefaultSizes; /** Title text displayed in the dropzone; falls back to localized default. */ title: string; /** Whether focus should be automatically captured when the overlay opens. */ autoCapture: boolean; }> | null; private readonly trapFocus; private readonly localeId; constructor(); /** @docs-private */ protected readonly title: import("@angular/core").Signal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }