import { ElementRef } from '@angular/core';
import { Subject } from 'rxjs';
import { CarbonListComponent } from '../carbon-list.component';
import { DragAndDropEvent } from '../../../models';
import * as i0 from "@angular/core";
export declare class CarbonListDragAndDropService {
    readonly dragAndDropEvents$: Subject<DragAndDropEvent>;
    private readonly _ROW_DRAG_CLASS;
    private readonly _carbonListElementRefSubject$;
    private get _carbonListElementRef$();
    private readonly _tableRowsSubject$;
    private get _tableRows$();
    private readonly _tableRowToMoveStartIndex$;
    private readonly _tableRowToMoveSubject$;
    private get _tableRowToMove$();
    private readonly _tableRowMouseOverSubject$;
    private get _tableRowMouseOver$();
    private readonly _mouseMoveDirection$;
    private _lastMouseY;
    private readonly _pauseSwap$;
    private _mouseMoveSubscription;
    private _mouseupSubscription;
    private _tableRowsSubscription;
    setCarbonListElementRef(ref: ElementRef<CarbonListComponent>): void;
    startDrag(startMouseY: number, rowToBeMovedStartIndex: number): void;
    private openMouseMoveSubscription;
    private openTableRowSubscription;
    private openMouseUpSubscription;
    private setTableRowUnderMouse;
    private pauseSwap;
    private continueSwap;
    private reset;
    private stopDrag;
    private emitReorderEvent;
    private getTableRows;
    private setTableRows;
    static ɵfac: i0.ɵɵFactoryDeclaration<CarbonListDragAndDropService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CarbonListDragAndDropService>;
}
//# sourceMappingURL=carbon-list-drag-and-drop.service.d.ts.map