import React from 'react';
import { ArrayFieldTemplateProps } from './types';
interface ArrayFieldTemplateState {
    order: number[];
}
export declare class ArrayFieldTemplate extends React.Component<ArrayFieldTemplateProps, ArrayFieldTemplateState> {
    private container?;
    private sortable?;
    private dragSnapshot?;
    private draggedItemIndex?;
    private dropElevationTimeout?;
    private dropElevationTarget?;
    private itemByIndex;
    constructor(props: ArrayFieldTemplateProps);
    componentWillUnmount(): void;
    componentDidMount(): void;
    componentDidUpdate(previousProps: ArrayFieldTemplateProps): void;
    render(): React.DetailedReactHTMLElement<{}, HTMLElement>;
    private renderAddButton;
    private getItemControls;
    private readonly handleAddClick;
    private renderItem;
    private readonly setContainer;
    private getOrderedItems;
    private readonly handleSortStart;
    private readonly handleSortEnd;
    private setupDragController;
    private teardownDragController;
    private canReorderItems;
    private canRemoveItems;
    private isItemReorderable;
    private isIndexReorderable;
    private getReorderableOrder;
    private readOrderFromDom;
    private getReorderId;
    private applyDropElevation;
    private scheduleDropElevationRemoval;
    private clearDropElevationTimer;
    private arraysEqual;
    private extractIndices;
}
export {};
//# sourceMappingURL=array-field.d.ts.map