///
import type { ViewStyle, TouchableNativeFeedbackProps, TouchableHighlightProps } from 'react-native';
import type { BorderProps, ColorProps, FlexboxProps, LayoutProps, SpaceProps, TypographyProps, PositionProps } from 'styled-system';
import type { customBorderProps, customBackgroundProps, customOutlineProps, customLayoutProps, customExtraProps, customShadowProps, customTypographyProps, customPositionProps } from '../../../utils/customProps';
import type { ITextProps } from '../../primitives/Text';
import type { IBoxProps } from '../../primitives/Box';
export declare type IMenuProps = BorderProps & ColorProps & SpaceProps & LayoutProps & FlexboxProps & customBorderProps & customExtraProps & customOutlineProps & customShadowProps & customLayoutProps & customTypographyProps & customBackgroundProps & TypographyProps & PositionProps & customPositionProps & BorderProps & {
trigger: (_props: any, state: {
open: boolean;
}) => JSX.Element;
children?: JSX.Element | Array;
onOpen?: () => void;
onClose?: () => void;
offsetSpace?: number;
closeOnSelect?: boolean;
style?: ViewStyle;
};
export declare type IMenuItemProps = IBoxProps & BorderProps & customBorderProps & customBackgroundProps & TouchableNativeFeedbackProps & TouchableHighlightProps & {
children: string | JSX.Element | Array;
isDisabled?: boolean;
style?: ViewStyle;
_text?: ITextProps;
};
export declare type IMenuItemOptionProps = IMenuItemProps & {
value: string | number;
};
export declare type IMenuGroupProps = {
title: string;
children: JSX.Element | Array;
_title?: ITextProps;
};
export declare type IMenuContextProps = {
closeMenu?: () => void;
open?: boolean;
closeOnSelect?: boolean;
};
export declare type IMenuOptionGroupProps = IMenuGroupProps & {
type: 'radio' | 'checkbox';
defaultValue?: string | number | Array | Array;
value?: string | number | Array | Array;
onChange?: (val: any) => void;
};
export declare type IMenuOptionContextProps = {
values: Array;
onChange: (val: string | number) => void;
type: 'radio' | 'checkbox';
};
export declare type IMenuComponent = ((props: IMenuProps) => JSX.Element) & {
Item: React.MemoExoticComponent<(props: IMenuItemProps) => JSX.Element>;
Group: React.MemoExoticComponent<(props: IMenuGroupProps) => JSX.Element>;
ItemOption: React.MemoExoticComponent<(props: IMenuItemOptionProps) => JSX.Element>;
OptionGroup: React.MemoExoticComponent<(props: IMenuOptionGroupProps) => JSX.Element>;
};