import React from 'react';
import { ArrayFieldTemplateProps } from './types';
import { ArrayFieldOptions } from './array-context';
export declare const ARRAY_REORDER_EVENT = "arrayReorder";
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 cachedContextValue;
    private cachedSchema?;
    private cachedFormData?;
    constructor(props: ArrayFieldTemplateProps);
    componentWillUnmount(): void;
    componentDidMount(): void;
    componentDidUpdate(previousProps: ArrayFieldTemplateProps): void;
    render(): React.FunctionComponentElement<React.ProviderProps<ArrayFieldOptions>>;
    private renderAddButton;
    private readonly handleAddClick;
    private readonly setContainer;
    private getOrderedItems;
    private readonly handleSortStart;
    private readonly handleSortEnd;
    private setupDragController;
    private teardownDragController;
    private canReorderItems;
    private readOrderFromDom;
    private getReorderId;
    private applyDropElevation;
    private scheduleDropElevationRemoval;
    private clearDropElevationTimer;
    private arraysEqual;
    private extractIndices;
    private getContextValue;
}
export {};
//# sourceMappingURL=array-field.d.ts.map