import { StringValidator, SafeParseResult } from '../form/schema/custom-validation';
import { StandardSchemaV1 } from '../form/schema/standard-schema-v1';
import { PasswordRules, ResetPasswordData, SignInFormData, SignUpFormData } from './types';
export declare function createPasswordSchema(rules?: PasswordRules): StringValidator;
export declare const emailSchema: StringValidator;
export declare function createSignInSchema(passwordRules?: PasswordRules): StandardSchemaV1<SignInFormData> & {
    safeParse: (value: unknown) => SafeParseResult<SignInFormData>;
};
export declare function createSignUpSchema(passwordRules?: PasswordRules, options?: {
    showNameField?: boolean;
    showConfirmPassword?: boolean;
    showAcceptTermsAndConditions?: boolean;
}): StandardSchemaV1<SignUpFormData> & {
    safeParse: (value: unknown) => SafeParseResult<SignUpFormData>;
};
export declare const resetPasswordSchema: StandardSchemaV1<ResetPasswordData> & {
    safeParse: (value: unknown) => SafeParseResult<ResetPasswordData>;
};
export declare const defaultSignInSchema: StandardSchemaV1<import("./types").SignInData, import("./types").SignInData> & {
    safeParse: (value: unknown) => SafeParseResult<SignInFormData>;
};
export declare const defaultSignUpSchema: StandardSchemaV1<SignUpFormData, SignUpFormData> & {
    safeParse: (value: unknown) => SafeParseResult<SignUpFormData>;
};
export type ResetPasswordFormData = ResetPasswordData;
export declare const authSchemas: {
    signIn: typeof createSignInSchema;
    signUp: typeof createSignUpSchema;
    resetPassword: () => StandardSchemaV1<ResetPasswordData, ResetPasswordData> & {
        safeParse: (value: unknown) => SafeParseResult<ResetPasswordData>;
    };
};
export declare function validateEmail(email: string): string | null;
export declare function validatePassword(password: string, rules?: PasswordRules): string | null;
export declare function calculatePasswordStrength(password: string, rules?: PasswordRules): {
    strength: 'weak' | 'fair' | 'good' | 'strong';
    score: number;
    checks: {
        length: boolean;
        uppercase: boolean;
        lowercase: boolean;
        numbers: boolean;
        symbols: boolean;
        custom: boolean;
    };
};
