'use client';

import { default as React } from 'react';
import { FieldProps } from './shared';
export interface PasswordFieldProps extends FieldProps<string> {
    /**
     * Whether field is required
     */
    required?: boolean;
    /**
     * Whether field is disabled
     */
    disabled?: boolean;
    /**
     * Whether to show password strength indicator
     */
    showStrength?: boolean;
    /**
     * Whether to show password requirements
     */
    showRequirements?: boolean;
    showSuggestions?: boolean;
    enableGenerate?: boolean;
    /**
     * Whether to allow password visibility toggle
     */
    allowToggle?: boolean;
    /**
     * Custom password validation rules
     */
    rules?: PasswordRules;
    /**
     * Field size
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * Field variant
     */
    variant?: 'flat' | 'bordered' | 'underlined' | 'faded';
    /**
     * Custom className
     */
    className?: string;
    /**
     * Auto focus
     */
    autoFocus?: boolean;
    /**
     * Auto complete
     */
    autoComplete?: string;
    /**
     * Whether this is for password confirmation
     */
    isConfirmation?: boolean;
    /**
     * Original password for confirmation
     */
    originalPassword?: string;
    /**
     * Custom validation error
     */
    error?: string | string[];
    /**
     * Help text
     */
    description?: string;
    /**
     * Start icon
     */
    startContent?: React.ReactNode;
    advanceRequirements?: any;
}
export interface PasswordRules {
    minLength?: number;
    maxLength?: number;
    requireUppercase?: boolean;
    requireLowercase?: boolean;
    requireNumbers?: boolean;
    requireSpecialChars?: boolean;
    preventCommon?: boolean;
    preventUserInfo?: boolean;
    customPattern?: RegExp;
    customMessage?: string;
}
export interface PasswordStrength {
    score: number;
    label: string;
    color: string;
    percentage: number;
    feedback: string[];
    requirements: PasswordRequirement[];
}
export interface PasswordRequirement {
    id: string;
    label: string;
    met: boolean;
    required: boolean;
}
export declare function PasswordFieldComponent({ name, label, placeholder, value, onChange, onBlur, onFocus, required, disabled, showStrength, showRequirements, showSuggestions, enableGenerate, allowToggle, rules, size, radius, variant, className, autoFocus, autoComplete, isConfirmation, originalPassword, error: externalError, description, startContent, advanceRequirements, }: PasswordFieldProps): import("react/jsx-runtime").JSX.Element;
export declare const PasswordField: React.MemoExoticComponent<typeof PasswordFieldComponent>;
export declare function PasswordConfirmationField({ originalPassword, ...props }: PasswordFieldProps & {
    originalPassword: string;
}): import("react/jsx-runtime").JSX.Element;
export default PasswordField;
//# sourceMappingURL=password-field.d.ts.map