/// <reference types="react" />
import { ExtendedInputElement } from '../ExtendedInputElement';
import { UpdateCallback } from '../IInputElement';
import { ValidationRule } from '../IValueInputElement';
import { IDynamicListInputElement, IDynamicValueChange, InternalDynamicInput } from './IDynamicListInputElement';
import { IDynamicListInputElementConfiguration } from './IDynamicListInputElementConfiguration';
import { DynamicListInputElementWrapper } from './InternalPresentationComponents/DynamicListInputElementWrapper';
import { IDynamicListMenuOption } from './Menu';
export interface IInputInformation<TValue> {
    uniqueId: number;
    input: InternalDynamicInput<TValue>;
}
export declare class DynamicListInputElement<TValue> extends ExtendedInputElement<IDynamicValueChange<TValue>[], DynamicListInputElementWrapper<TValue>> implements IDynamicListInputElement<TValue> {
    private static counter;
    private readonly _configuration;
    private _inputs;
    constructor(config: IDynamicListInputElementConfiguration, inputOptions: IDynamicListMenuOption<TValue>[], update: UpdateCallback);
    /**
     * @inheritdoc
     * This property will be unused.
     */
    validationRules: ValidationRule<TValue[]>[];
    /** @inheritdoc */
    validate(): void;
    /** @inheritdoc */
    get hasChanges(): boolean;
    /** @inheritdoc */
    inputOptions: IDynamicListMenuOption<TValue>[];
    /** @inheritdoc */
    get inputs(): InternalDynamicInput<TValue>[];
    /** @inheritdoc */
    get isValid(): boolean;
    /** @inheritdoc */
    get value(): TValue[];
    /** @inheritdoc */
    protected renderComponent(): JSX.Element;
    private renderMenu;
    private renderFooterMenu;
    private onAddNewValue;
    private onDragEnd;
    private reorder;
    private convert;
    protected setInternalValue(valueChange: IDynamicValueChange<TValue>[], isInitial: boolean): void;
    /** @inheritdoc */
    protected resetInternalValue(): void;
    private filterInputs;
}
