import { FocusStrategy } from '@react-types/shared';
import React, { ReactElement, ReactNode } from 'react';
import { BaseProps, ContainerStyleProps, Styles } from '../../../tasty';
import { CubeMenuProps } from '../Menu/Menu';
export interface CommandMenuItem {
    id: string;
    textValue: string;
    keywords?: string[];
    forceMount?: boolean;
    [key: string]: any;
}
export interface CubeCommandMenuProps<T> extends BaseProps, ContainerStyleProps, Omit<CubeMenuProps<T>, 'selectedKeys' | 'defaultSelectedKeys' | 'onSelectionChange'> {
    searchPlaceholder?: string;
    searchValue?: string;
    onSearchChange?: (value: string) => void;
    filter?: (textValue: string, inputValue: string) => boolean;
    emptyLabel?: ReactNode;
    searchInputStyles?: Styles;
    headerStyles?: Styles;
    footerStyles?: Styles;
    isLoading?: boolean;
    shouldFilter?: boolean;
    autoFocus?: boolean | FocusStrategy;
    size?: 'medium' | 'large' | (string & {});
    /** Currently selected keys (controlled) */
    selectedKeys?: string[];
    /** Initially selected keys (uncontrolled) */
    defaultSelectedKeys?: string[];
    /** Handler for selection changes */
    onSelectionChange?: (keys: string[]) => void;
}
declare const __CommandMenu: (<T>(props: CubeCommandMenuProps<T> & React.RefAttributes<HTMLDivElement>) => ReactElement) & {
    Trigger: React.ForwardRefExoticComponent<any>;
    Item: any;
    Section: any;
    displayName: string;
};
export { __CommandMenu as CommandMenu };
