///
import type { TextProps, ViewProps, StyleProp, ViewStyle, TextStyle, StatusBarProps, OpaqueColorValue, ImageProps } from "react-native";
import type Color from "../../constants/colors";
import type { LumineContextParams } from "../LumineContext";
import type { TextInputProps } from "react-native-paper";
export declare type Orientation = "horizontal" | "vertical";
export declare type ComponentType = "Text" | "Button" | "TextInput" | "List" | "View" | "StatusBar" | "Ionicon" | "Screen" | "Navigator" | "Image" | "ScrollView" | "LumineContextComponent";
export declare type ActionType = "navigateBack" | "navigateTo" | "navigateToRoot" | "get" | "post" | "patch" | "put" | "head" | "delete" | "options" | "stateUpdate" | "custom";
export interface Action {
type: ActionType | string;
screenName?: string;
params?: any;
url?: string;
route?: string;
stateVariableName?: string;
stateOperation?: string;
customAction?: string;
customArgs?: string;
}
export interface Component {
type?: ComponentType | string;
id?: string | number;
contexts?: {
[key: string]: React.Context;
};
}
export interface StateVariable {
name: string;
value: any;
}
export interface LumineContextComponent extends Component {
name: string;
children?: Component[];
stateVariables?: StateVariable[];
}
export interface Text extends Component {
text?: string;
child?: Component;
textProps?: TextProps;
onLayout?: string | undefined;
onTextLayout?: string | undefined;
onPress?: Action | string | undefined;
onPressIn?: string | undefined;
onPressOut?: string | undefined;
onLongPress?: string | undefined;
}
export interface View extends Component {
viewProps?: ViewProps;
children?: Component[];
onLayout?: string | undefined;
onAccessibilityAction?: string | undefined;
onStartShouldSetResponder?: string | undefined;
onMoveShouldSetResponder?: string | undefined;
onResponderEnd?: string | undefined;
onResponderGrant?: string | undefined;
onResponderReject?: string | undefined;
onResponderMove?: string | undefined;
onResponderRelease?: string | undefined;
onResponderStart?: string | undefined;
onResponderTerminationRequest?: string | undefined;
onResponderTerminate?: string | undefined;
onStartShouldSetResponderCapture?: string | undefined;
onMoveShouldSetResponderCapture?: string | undefined;
onAccessibilityEscape?: string | undefined;
onAccessibilityTap?: string | undefined;
onMagicTap?: string | undefined;
onTouchStart?: string | undefined;
onTouchMove?: string | undefined;
onTouchEnd?: string | undefined;
onTouchCancel?: string | undefined;
onTouchEndCapture?: string | undefined;
}
export declare type RNPButtonProps = ViewProps & {
mode?: "text" | "outlined" | "contained";
dark?: boolean;
compact?: boolean;
color?: string;
loading?: boolean;
disabled?: boolean;
uppercase?: boolean;
accessibilityLabel?: string;
accessibilityHint?: string;
contentStyle?: StyleProp;
labelStyle?: StyleProp;
};
export interface Button extends Component {
child: Component;
buttonProps: RNPButtonProps;
onPress?: Action | string | undefined;
}
export interface StatusBar extends Component {
statusBarProps: StatusBarProps;
}
export interface IconProps extends TextProps {
/**
* Size of the icon, can also be passed as fontSize in the style object.
*
* @default 12
*/
size?: number;
/**
* Name of the icon to show
*
* See Icon Explorer app
* {@link https://expo.github.io/vector-icons/}
*/
name: GLYPHS;
/**
* Color of the icon. Can be a string or OpaqueColorValue (returned from
* PlatformColor(..))
*
*/
color?: Color | OpaqueColorValue | string;
}
export interface Ionicon extends Component {
iconProps: IconProps;
}
export interface TextInput extends Component {
textInputProps?: TextInputProps;
render?: Action | string | undefined;
onBlur?: Action | string | undefined;
onChange?: Action | string | undefined;
onChangeText?: Action | string | undefined;
onContentSizeChange?: Action | string | undefined;
onEndEditing?: Action | string | undefined;
onPressIn?: Action | string | undefined;
onPressOut?: Action | string | undefined;
onFocus?: Action | string | undefined;
onSelectionChange?: Action | string | undefined;
onSubmitEditing?: Action | string | undefined;
onTextInput?: Action | string | undefined;
onScroll?: Action | string | undefined;
onKeyPress?: Action | string | undefined;
}
export declare type NavigatorType = "stack" | "bottom-tab" | "material-bottom-tab";
export interface Screen extends Component {
url?: string;
name?: string;
tabBarIcon?: Ionicon;
tabBarFocusedIcon?: Ionicon;
}
export interface Card extends Component {
viewProps?: ViewProps;
children?: Component[];
elevation?: number;
}
export interface Navigator extends Component {
navigatorType: NavigatorType;
screens?: Screen[];
headerShown?: boolean;
}
export interface ScrollView extends Component {
style?: StyleProp;
orientation: Orientation;
items: Component[];
}
export interface Image extends Component {
imageProps?: ImageProps;
onProgress?: Action | string | undefined;
onPartialLoad?: Action | string | undefined;
onLayout?: Action | string | undefined;
onError?: Action | string | undefined;
onLoad?: Action | string | undefined;
onLoadEnd?: Action | string | undefined;
onLoadStart?: Action | string | undefined;
}
export interface PresentationData {
components: Component[];
}
export interface ListType extends Component {
orientation: Orientation;
items: Component[];
}
//# sourceMappingURL=index.d.ts.map