export default List;
/**
 * @deprecated - Components in the legacy folder (/src/legacy) are deprecated. Please use a component from the components folder (/src/components) instead. Legacy components may not follow accessibility standards.
 **/
declare class List extends React.Component<any, any, any> {
    static getDerivedStateFromProps({ active }: {
        active: any;
    }, state: any): any;
    constructor(props: any);
    state: {
        id: any;
        last: number;
        listContext: {
            active: any;
            focus: any;
            role: any;
            type: any;
            ariaConfig: any;
        };
        selectContext: {
            parentKeyDown: (e: any) => void;
            parentOnSelect: (e: any, opts: any) => any;
        };
    };
    componentDidMount(): void;
    componentDidUpdate(prevProps: any, prevState: any): void;
    determineInitialFocus: () => void;
    getIncludesFirstCharacter: (str: any, char: any) => any;
    getNextFocusedChild(items: any, current: any, offset: any): any;
    getValue: (arr: any, index: any, attribute: any) => any;
    getFocusableItems: () => any;
    handleKeyDown: (e: any) => void;
    _needsRefocus: boolean;
    handleSelect: (e: any, opts: any) => any;
    setFocus: (items: any, index: any) => void;
    setActiveAndFocus: (active: any, focus: any) => void;
    setFocusByFirstCharacter: (char: any, focusIdx: any, items: any, length: any) => void;
    setFocusToActive(): void;
    setFocusToLimit(target: any, items: any, length: any): void;
    render(): JSX.Element;
    listNode: HTMLDivElement;
}
declare namespace List {
    namespace propTypes {
        let active: PropTypes.Requireable<NonNullable<string | number | any[]>>;
        let ariaConfig: PropTypes.Requireable<NonNullable<boolean | object>>;
        let children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        let className: PropTypes.Requireable<string>;
        let focus: PropTypes.Requireable<string>;
        let focusFirst: PropTypes.Requireable<boolean>;
        let focusFirstQuery: PropTypes.Requireable<string>;
        let focusQuery: PropTypes.Requireable<string>;
        let id: PropTypes.Requireable<string>;
        let itemRole: PropTypes.Requireable<string>;
        let navigationDirection: PropTypes.Requireable<string>;
        let onSelect: PropTypes.Requireable<(...args: any[]) => any>;
        let shouldPropagateKeyDown: PropTypes.Requireable<boolean>;
        let role: PropTypes.Requireable<string>;
        let shouldFocusInitial: PropTypes.Requireable<boolean>;
        let shouldFocusActive: PropTypes.Requireable<boolean>;
        let shouldLoop: PropTypes.Requireable<boolean>;
        let tabType: PropTypes.Requireable<string>;
        let trackActive: PropTypes.Requireable<boolean>;
        let type: PropTypes.Requireable<string>;
        let wrap: PropTypes.Requireable<boolean>;
    }
    namespace defaultProps {
        let active_1: any;
        export { active_1 as active };
        let ariaConfig_1: any;
        export { ariaConfig_1 as ariaConfig };
        let children_1: any;
        export { children_1 as children };
        let className_1: string;
        export { className_1 as className };
        let id_1: any;
        export { id_1 as id };
        let itemRole_1: string;
        export { itemRole_1 as itemRole };
        let focus_1: any;
        export { focus_1 as focus };
        let focusFirst_1: boolean;
        export { focusFirst_1 as focusFirst };
        let focusFirstQuery_1: string;
        export { focusFirstQuery_1 as focusFirstQuery };
        let focusQuery_1: string;
        export { focusQuery_1 as focusQuery };
        let navigationDirection_1: string;
        export { navigationDirection_1 as navigationDirection };
        let onSelect_1: any;
        export { onSelect_1 as onSelect };
        let shouldPropagateKeyDown_1: boolean;
        export { shouldPropagateKeyDown_1 as shouldPropagateKeyDown };
        let role_1: string;
        export { role_1 as role };
        let shouldFocusActive_1: boolean;
        export { shouldFocusActive_1 as shouldFocusActive };
        let shouldFocusInitial_1: boolean;
        export { shouldFocusInitial_1 as shouldFocusInitial };
        let shouldLoop_1: boolean;
        export { shouldLoop_1 as shouldLoop };
        let tabType_1: string;
        export { tabType_1 as tabType };
        let trackActive_1: boolean;
        export { trackActive_1 as trackActive };
        let type_1: any;
        export { type_1 as type };
        let wrap_1: boolean;
        export { wrap_1 as wrap };
    }
    let displayName: string;
}
import React from 'react';
import PropTypes from 'prop-types';
