import { ElementRef, OnDestroy, OnInit } from '@angular/core';
import { Subscription } from 'rxjs';
import { DescendantChildren } from '../services/drag-drop-desc-reg.service';
import { DropSortSyncDescendantRegisterService } from '../services/drag-drop-descendant-sync.service';
import { DragDropSyncService } from '../services/drag-drop-sync.service';
import { DroppableDirective } from './droppable.directive';
import { DragPlaceholderInsertionEvent, DragPlaceholderInsertionIndexEvent } from './placeholder-insertion-event.type';
import * as i0 from "@angular/core";
export declare class DropSortSyncDirective extends DescendantChildren<DropSortSyncDirective> implements OnInit, OnDestroy {
    el: ElementRef;
    private droppable;
    private dragDropSyncService;
    private dropSortSyncDrs;
    dropSyncGroup: string;
    direction: 'v' | 'h';
    subscription: Subscription;
    syncGroupDirectives: Array<DropSortSyncDirective>;
    placeholder: HTMLElement;
    sortContainer: HTMLElement;
    constructor(el: ElementRef, droppable: DroppableDirective, dragDropSyncService: DragDropSyncService, dropSortSyncDrs: DropSortSyncDescendantRegisterService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    subRenderEvent: (nativeStyle: {
        width: number;
        height: number;
    }) => void;
    subInsertionEvent: (cmd: DragPlaceholderInsertionIndexEvent) => void;
    getChildrenElByIndex(target: any, index?: any): Element;
    renderPlaceholder(nativeStyle: {
        width: number;
        height: number;
    }, droppable: any): void;
    insertPlaceholderCommand(cmd: DragPlaceholderInsertionEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropSortSyncDirective, [null, { optional: true; self: true; }, null, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DropSortSyncDirective, "[dDropSortSync]", ["dDropSortSync"], { "dropSyncGroup": { "alias": "dDropSortSync"; "required": false; }; "direction": { "alias": "dropSyncDirection"; "required": false; }; }, {}, never, never, false, never>;
}
