///
import { ReactNode, ReactElement } from 'react';
import { ViewStyle, TextStyle, StyleProp } from 'react-native';
interface ProcessFooterProps {
removeButtonRow?: boolean;
hidePreviousButton?: boolean | undefined;
previousButtonStyle?: ViewStyle;
previousButtonText?: string;
previousButtonDisabled?: boolean;
onPreviousStep?: () => {};
previousButtonTextStyle?: TextStyle;
hideNextButton?: boolean | undefined;
nextButtonStyle?: ViewStyle;
nextButtonTitle?: string;
onNextStep?: () => {};
nextButtonTextStyle?: TextStyle;
nextButtonDisabled?: boolean;
footerComponent?: ReactNode;
}
declare const ProcessFooter: ({ removeButtonRow, hidePreviousButton, previousButtonStyle, previousButtonText, previousButtonDisabled, onPreviousStep, previousButtonTextStyle, hideNextButton, nextButtonStyle, nextButtonTitle, onNextStep, nextButtonTextStyle, nextButtonDisabled, footerComponent, }: ProcessFooterProps) => JSX.Element | null;
interface StepProps {
children?: ReactNode;
hide?: boolean;
label?: string;
labelStyle?: TextStyle | undefined;
onPrevious?: (previousStepIndex: number) => {};
onNext?: (nextStepIndex: number) => {};
hideNextButton?: boolean;
hidePreviousButton?: boolean;
footerComponent?: ReactNode;
showFirstStepPreviousButton?: boolean;
}
declare const Step: ({ children }: StepProps) => JSX.Element;
interface StepIconProps {
label?: string;
labelStyle?: TextStyle;
stepNumber?: number;
isActiveStep?: boolean;
isCompletedStep?: boolean;
completedStepIconColor?: string;
activeStepIconColor?: string;
activeStepNumColor?: string;
disabledStepNumColor?: string;
completedCheckColor?: string;
showLabelAboveSteps?: boolean;
}
declare const StepIcon: ({ label, labelStyle, stepNumber, isActiveStep, isCompletedStep, completedStepIconColor, activeStepIconColor, activeStepNumColor, disabledStepNumColor, completedCheckColor, showLabelAboveSteps, }: StepIconProps) => JSX.Element;
interface ProcessFlowProps extends StepProps, ProcessFooterProps, StepIconProps {
children: ReactElement[];
onChangeStep?: (currentStepIndex?: number, nextStepIndex?: number, previousStepIndex?: number) => {} | undefined;
onPrevious: (previousStepIndex: number) => {};
onNext: (nextStepIndex: number) => {};
onSubmit?: () => {};
nextButtonText?: string;
previousButtonText?: string;
finishButtonText?: string;
nextButtonDisabled?: boolean;
previousButtonDisabled?: boolean;
removeButtonRow?: boolean;
footerComponent?: ReactNode;
showLabelAboveSteps?: boolean;
}
declare const ProcessFlow: ({ children, onChangeStep, onNext, onPrevious, onSubmit, nextButtonStyle, nextButtonText, nextButtonTextStyle, previousButtonStyle, previousButtonText, previousButtonTextStyle, finishButtonText, nextButtonDisabled, previousButtonDisabled, removeButtonRow, footerComponent, labelStyle, showLabelAboveSteps, ...props }: ProcessFlowProps) => JSX.Element;
declare const createProcess: () => {
ProcessFlow: ({ children, onChangeStep, onNext, onPrevious, onSubmit, nextButtonStyle, nextButtonText, nextButtonTextStyle, previousButtonStyle, previousButtonText, previousButtonTextStyle, finishButtonText, nextButtonDisabled, previousButtonDisabled, removeButtonRow, footerComponent, labelStyle, showLabelAboveSteps, ...props }: ProcessFlowProps) => JSX.Element;
Step: ({ children }: StepProps) => JSX.Element;
};
interface ProgressButtonProps {
title?: string;
onPress?: () => {};
style?: ViewStyle;
titleStyle?: StyleProp;
disabled?: boolean;
children?: ReactNode;
}
declare const ProgressButton: ({ title, onPress, style, titleStyle, disabled, children, }: ProgressButtonProps) => JSX.Element;
interface ProcessContainerProps {
children: ReactNode;
initialNumberOfSteps: number;
}
interface ProcessContextType {
totalSteps: number;
numberOfSteps: (totalStepsNumber: number) => void;
activeStep: number;
currentStep: (currentStepIndex: number) => void;
}
declare const ProcessContainer: ({ children, initialNumberOfSteps }: ProcessContainerProps) => JSX.Element;
declare const useProcess: () => ProcessContextType;
export { ProcessContainer, ProcessFlow, ProcessFooter, ProgressButton, Step, StepIcon, createProcess, useProcess };