import { createStackNavigator, StackNavigationProp } from '@react-navigation/stack';
import React from "react";
import Intro from "../components/Auth/Intro";
import { RegisterMain } from "../components/Auth/RegisterMain";
;

/**
 * Permitted screens for the Auth stack navigator. 
 * @category Navigation
 * @typedef
 */
export type UnAuthStackParamList = {
    Intro: React.FC,
    Login: React.FC,
    Register: React.FC,
}

export type UnAuthStackNavigationProp = StackNavigationProp<UnAuthStackParamList>;

const AuthStack = createStackNavigator<UnAuthStackParamList>();

/**
 * The root navigator for all unauthorized screens ({@link Intro}, {@link RegisterMain}). It uses a [React Navigation Stack Navigator]{@link https://reactnavigation.org/docs/stack-navigator/} the main navigation mechanism.
 * @category Navigation
 * @component
 */
const UnauthorizedNavigator : React.FC = () => {
    return (
        <AuthStack.Navigator screenOptions={{
            headerTransparent: true,
            headerTintColor: 'white',
            headerTitle: ""}}>
            <AuthStack.Screen name="Intro" component={Intro} />
            <AuthStack.Screen name="Register" component={RegisterMain} />
        </AuthStack.Navigator>
    );
}

export default UnauthorizedNavigator;