import * as React from "react";
import * as PropTypes from "prop-types";
import memoize from "memoizee";
import { FieldProps, JSONSchemaObject } from "../../types";
interface State {
    activeButtonIdx?: number;
}
export default class MultiTagArrayField extends React.Component<FieldProps<JSONSchemaObject>, State> {
    static contextType: React.Context<import("../../ReactContext").ContextProps>;
    static propTypes: {
        uiSchema: PropTypes.Requireable<PropTypes.InferProps<{
            "ui:options": PropTypes.Requireable<PropTypes.InferProps<{
                buttons: PropTypes.Requireable<((PropTypes.InferPropsInner<Pick<{
                    operation: PropTypes.Requireable<string>;
                    label: PropTypes.Requireable<string>;
                    className: PropTypes.Requireable<string>;
                }, never>> & Partial<PropTypes.InferPropsInner<Pick<{
                    operation: PropTypes.Requireable<string>;
                    label: PropTypes.Requireable<string>;
                    className: PropTypes.Requireable<string>;
                }, "label" | "className" | "operation">>>) | null | undefined)[]>;
            }>>;
        }>>;
        schema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            type: PropTypes.Requireable<string>;
        }>>>;
        formData: PropTypes.Requireable<object>;
    };
    state: State;
    private affixContainerRef;
    componentDidUpdate(prevProps: FieldProps): void;
    render(): JSX.Element;
    onChange: ((key: string) => (formData: any) => void) & memoize.Memoized<(key: string) => (formData: any) => void>;
    onButtonClick: ((idx: number) => () => void) & memoize.Memoized<(idx: number) => () => void>;
    onTagClick: ((fromField: string) => (idx: number, e: React.MouseEvent<HTMLButtonElement>) => void) & memoize.Memoized<(fromField: string) => (idx: number, e: React.MouseEvent<HTMLButtonElement>) => void>;
}
export {};
