import { default as React, ReactNode } from 'react';
/**
 * PasswordInput — sama seperti TextField, tetapi dengan tombol toggle visibility:
 * - type="password" secara default, bisa toggle ke "text".
 * - menggunakan IconEye / IconEyeOff dari Tabler Icons.
 *
 * @param {string} value               Nilai controlled input.
 * @param {(val: string) => void} onChange Callback tiap perubahan.
 * @param {number} [debounce]          Debounce ms untuk onChangeDebounced.
 * @param {(val: string) => void} [onChangeDebounced] Callback setelah debounce.
 * @param {ReactNode} [prefixIcon]     Icon di depan field.
 * @param {ReactNode} [label]          Label di atas field.
 * @param {ReactNode} [helperText]     Teks bantuan (opsional).
 * @param {'neutral'|'error'|'warning'|'success'} [status] Status visual.
 * @param {ReactNode} [statusMessage]  Pesan sesuai status.
 * @param {number} [maxLength]         Maks karakter.
 * @param {boolean} [showCharCount]    Tampilkan penghitung karakter.
 * @param {string} [placeholder]       Placeholder input.
 * @param {boolean} [disabled]         Disable state.
 * @param {string} [className]         ClassName tambahan pada wrapper.
 */
export type PasswordInputStatus = 'neutral' | 'error' | 'warning' | 'success';
export type PasswordInputSize = 'sm' | 'md' | 'lg';
export interface PasswordInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'size'> {
    /**
     * Nilai controlled untuk password.
     */
    value: string;
    /**
     * Callback dipanggil setiap kali nilai berubah.
     */
    onChange: (val: string) => void;
    /**
     * Durasi debounce dalam ms untuk onChangeDebounced. Default: 0 (no debounce).
     */
    debounce?: number;
    /**
     * Callback dipanggil setelah delay `debounce` ms dari terakhir ketikan.
     */
    onChangeDebounced?: (val: string) => void;
    /**
     * Icon di depan field (opsional).
     */
    prefixIcon?: ReactNode;
    /**
     * Label di atas input (opsional).
     */
    label?: ReactNode;
    /**
     * Teks bantuan di bawah field (opsional).
     */
    helperText?: ReactNode;
    /**
     * Status visual: neutral (default), error, warning, success.
     */
    status?: PasswordInputStatus;
    /**
     * Pesan yang muncul sesuai status (meng-override helperText bila status≠neutral).
     */
    statusMessage?: ReactNode;
    /**
     * Size variant: sm, md (default), lg.
     */
    size?: PasswordInputSize;
    /**
     * Maksimum panjang karakter.
     */
    maxLength?: number;
    /**
     * Jika true, tampilkan penghitung karakter: current/maxLength.
     */
    showCharCount?: boolean;
}
export default function PasswordInput({ value, onChange, debounce, onChangeDebounced, prefixIcon, label, helperText, status, statusMessage, size, maxLength, showCharCount, placeholder, disabled, className, onBlur, ...rest }: PasswordInputProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=PasswordInput.d.ts.map