/**
 * Web DrawerList Helpers
 *
 * This is a legacy component.
 * For referencing while developing new features, please use a Functional component.
 */
import PropTypes from 'prop-types';
import { DrawerListDataArrayItem, DrawerListData, DrawerListDataAll, DrawerListInternalData } from './DrawerList';
import { DrawerListProviderProps } from './DrawerListProvider';
import { DrawerListContextState } from './DrawerListContext';
export declare const drawerListPropTypes: {
    className: PropTypes.Requireable<string>;
    children: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
    on_show: PropTypes.Requireable<(...args: any[]) => any>;
    on_hide: PropTypes.Requireable<(...args: any[]) => any>;
    handle_dismiss_focus: PropTypes.Requireable<(...args: any[]) => any>;
    on_change: PropTypes.Requireable<(...args: any[]) => any>;
    on_pre_change: PropTypes.Requireable<(...args: any[]) => any>;
    on_resize: PropTypes.Requireable<(...args: any[]) => any>;
    on_select: PropTypes.Requireable<(...args: any[]) => any>;
    on_state_update: PropTypes.Requireable<(...args: any[]) => any>;
    space: PropTypes.Requireable<NonNullable<string | number | boolean | PropTypes.InferProps<{
        top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
        right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
        bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
        left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
    }>>>;
    top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
    right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
    bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
    left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
    id: PropTypes.Requireable<string>;
    role: PropTypes.Requireable<string>;
    cache_hash: PropTypes.Requireable<string>;
    triangle_position: PropTypes.Requireable<string>;
    scrollable: PropTypes.Requireable<NonNullable<string | boolean>>;
    focusable: PropTypes.Requireable<NonNullable<string | boolean>>;
    direction: PropTypes.Requireable<string>;
    size: PropTypes.Requireable<string>;
    max_height: PropTypes.Requireable<number>;
    no_animation: PropTypes.Requireable<NonNullable<string | boolean>>;
    no_scroll_animation: PropTypes.Requireable<NonNullable<string | boolean>>;
    prevent_selection: PropTypes.Requireable<NonNullable<string | boolean>>;
    action_menu: PropTypes.Requireable<NonNullable<string | boolean>>;
    is_popup: PropTypes.Requireable<NonNullable<string | boolean>>;
    align_drawer: PropTypes.Requireable<string>;
    options_render: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
    wrapper_element: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
    default_value: PropTypes.Requireable<NonNullable<string | number>>;
    value: PropTypes.Requireable<NonNullable<string | number>>;
    skip_portal: PropTypes.Requireable<NonNullable<string | boolean>>;
    portal_class: PropTypes.Requireable<string>;
    list_class: PropTypes.Requireable<string>;
    prevent_close: PropTypes.Requireable<NonNullable<string | boolean>>;
    independent_width: PropTypes.Requireable<NonNullable<string | boolean>>;
    fixed_position: PropTypes.Requireable<NonNullable<string | boolean>>;
    keep_open: PropTypes.Requireable<NonNullable<string | boolean>>;
    prevent_focus: PropTypes.Requireable<NonNullable<string | boolean>>;
    skip_keysearch: PropTypes.Requireable<NonNullable<string | boolean>>;
    opened: PropTypes.Requireable<NonNullable<string | boolean>>;
    data: PropTypes.Requireable<NonNullable<NonNullable<object | PropTypes.ReactNodeLike>>>;
    raw_data: PropTypes.Requireable<object>;
    ignore_events: PropTypes.Requireable<NonNullable<string | boolean>>;
};
export declare const drawerListDefaultProps: {
    id: any;
    role: string;
    cache_hash: any;
    triangle_position: string;
    scrollable: boolean;
    focusable: boolean;
    max_height: any;
    direction: string;
    size: string;
    no_animation: boolean;
    no_scroll_animation: boolean;
    prevent_selection: boolean;
    action_menu: boolean;
    is_popup: boolean;
    align_drawer: string;
    wrapper_element: any;
    default_value: any;
    value: string;
    portal_class: any;
    list_class: any;
    skip_portal: any;
    prevent_close: boolean;
    keep_open: boolean;
    prevent_focus: boolean;
    fixed_position: boolean;
    independent_width: boolean;
    skip_keysearch: boolean;
    opened: any;
    data: any;
    raw_data: any;
    ignore_events: any;
    className: any;
    children: any;
    on_show: any;
    on_hide: any;
    handle_dismiss_focus: any;
    on_change: any;
    on_pre_change: any;
    on_resize: any;
    on_select: any;
    on_state_update: any;
    options_render: any;
};
export declare const drawerListProviderPropTypes: {
    enable_body_lock: PropTypes.Requireable<boolean>;
    page_offset: PropTypes.Requireable<NonNullable<string | number>>;
    observer_element: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
    min_height: PropTypes.Requireable<NonNullable<string | number>>;
};
export declare const drawerListProviderDefaultProps: {
    enable_body_lock: boolean;
    page_offset: any;
    observer_element: any;
    min_height: number;
};
export declare function parseContentTitle(dataItem: DrawerListDataArrayItem, { separator, removeNumericOnlyValues, preferSelectedValue, }?: {
    separator?: string;
    removeNumericOnlyValues?: boolean;
    preferSelectedValue?: boolean;
}): string | null;
export declare const hasObjectKeyAsValue: (data: any) => boolean;
export declare function preSelectData(data: DrawerListData): DrawerListDataAll;
/**
 * Takes any of the forms data can have and returns a normalized array representation of it.
 * If the data is a single React.ReactNode, it will return an empty list.
 * @param {*} props object containing the data in props.data or props.children, or the data itself
 * @returns an array representation of the data
 */
export declare function normalizeData(props: any): DrawerListInternalData;
export declare const getData: (props: any) => DrawerListInternalData;
export declare const getCurrentIndex: (value: any, data: any) => any;
export declare const getSelectedItemValue: (value: any, state: any) => any;
export declare const parseCurrentValue: (current: any) => any;
export declare const getEventData: (item_index: any, data: any) => any;
export declare const getCurrentData: (item_index: any, data: any) => any;
export declare function prepareStartupState(props: DrawerListProviderProps): DrawerListContextState;
export declare const prepareDerivedState: (props: DrawerListProviderProps, state: DrawerListContextState) => DrawerListContextState;
export declare const getCurrentDataTitle: (selected_item: any, data: any) => string;
export declare const findClosest: (arr: any, val: any) => any;
