import { Observable, Subject } from 'rxjs';
import { DropPlaceholderPreview, DropTargetData } from './dndBus.interface';
import * as i0 from "@angular/core";
/**
 * Service that serves as communication bus for dnd
 */
export declare class DndBusService {
    /**
     * Used for emitting drop data changes
     */
    protected dropDataChangeSubject: Subject<DropTargetData>;
    /**
     * Current value of drop placeholder preview
     */
    protected dropPlaceholderPreview: DropPlaceholderPreview | null;
    /**
     * Used for emitting when new drop placeholder preview should be displayed
     */
    protected newDropPlaceholderPreviewSubject: Subject<DropPlaceholderPreview>;
    /**
     * Used for emitting when old drop placeholder preview should be removed
     */
    protected oldDropPlaceholderPreviewSubject: Subject<DropPlaceholderPreview>;
    /**
     * Occurs when drop data changes
     */
    get dropDataChange(): Observable<DropTargetData>;
    /**
     * Occurs when new drop placeholder preview should be displayed
     */
    get newDropPlaceholderPreviewChange(): Observable<DropPlaceholderPreview>;
    /**
     * Occurs when old drop placeholder preview should be removed
     */
    get oldDropPlaceholderPreviewChange(): Observable<DropPlaceholderPreview>;
    /**
     * Gets current drop placeholder preview index
     */
    get dropPlaceholderPreviewIndex(): number | null;
    /**
     * Sets drop data new value
     * @param data - Value of data that changed
     */
    setDropData(data: DropTargetData): void;
    /**
     * Sets drop placeholder preview
     * @param data - Data for new drop placeholder preview
     */
    setDropPlaceholderPreview(data: DropPlaceholderPreview | null): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DndBusService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DndBusService>;
}
//# sourceMappingURL=dndBus.service.d.ts.map