import React from 'react';
import { AlertButton } from 'react-native';
import { ICognitoLoginProps } from './ICognitoLoginProps';
import { ICognitoLoginState } from './ICognitoLoginState';
/**
 * A form for logging in to AWS Cognito through Amplify.
 *
 * On successful registration the {@link ICognitoLoginProps.onRegisteredUser} event is triggered.
 *
 * On successful login the {@link ICognitoLoginProps.onLoggedIn} event is triggered.
 *
 * Children can be supplied for the this component as well as child components. See {@link ICognitoLoginProps}.
 *
 * Remarks:
 * * Requires Amplify to be configured:
 *
 * https://aws-amplify.github.io/docs/js/start?ref=amplify-rn-btn&platform=react-native#step-4-integrate-aws-resources
 *
 * Props are {@link ICognitoLoginProps}
 *
 * @example <caption>With custom button props and callback</caption>
 *  <CognitoLogin
 *    onRegisteredUser={(user) => {
 *      Alert.alert('Registration complete', 'Thank you ' + user.getUsername());
 *    }}
 *    onLoggedIn={(user) => {
 *      Alert.alert('Logged in', 'Welcome ' + user.getUsername());
 *    }}
 *    buttonProps={{mode: 'contained'}}>
 *     <Text>Custom layouts here</Text>
 *  </CognitoLogin>
 * @example <caption>With custom children</caption>
 *  <CognitoLogin
 *      registerChildren={
 *        <Text
 *          style={{
 *            color: 'blue',
 *            fontWeight: 'bold',
 *            margin: 10,
 *            fontSize: 16,
 *          }}
 *        >
 *          &lt;ENLIST NOW&gt;
 *      </Text>
 *      }
 *    >
 *      <Text
 *        style={{
 *          color: 'red',
 *          fontWeight: 'bold',
 *          margin: 10,
 *          fontSize: 16,
 *        }}
 *      >
 *        &lt;WARNING: RESTRICTED AREA&gt; :)
 *      </Text>
 *    </CognitoLogin>
 */
export declare class CognitoLogin extends React.Component<ICognitoLoginProps, ICognitoLoginState> {
    constructor(props: ICognitoLoginProps);
    /**
     * Determines the currently visible form
     */
    onResultChanged: () => void;
    onEmailChanged: (email: string | undefined) => void;
    onPasswordChanged: (password: string | undefined) => void;
    onPhoneChanged: (phone: string | undefined) => void;
    OnResendSignup: () => void;
    ForgotPasswordAsync: (email: string) => Promise<void>;
    OnResetPassword: () => void;
    onRegister: () => Promise<void>;
    onConfirmAccount: () => Promise<void>;
    onConfirmMFACode: () => Promise<void>;
    onSaveNewPassword: () => Promise<void>;
    onLogin: () => Promise<void>;
    render: () => JSX.Element;
    ForgotPasswordAlertButton: AlertButton;
    cancelAlertButton: AlertButton;
}
export default CognitoLogin;
//# sourceMappingURL=CognitoLogin.d.ts.map