/**
 * Input Sanitizer (Character Whitelisting)
 *
 * Provides small utilities to remove unwanted characters from user input.
 *
 * Important:
 * - This is NOT a complete SQL injection defense.
 * - Always use parameterized queries / the ORM / QueryBuilder.
 *
 * Use this for:
 * - Normalizing identifiers (username, slug-ish strings)
 * - Cleaning phone numbers / numeric strings
 * - Reducing unexpected characters before storage/logging
 *
 * Bulletproof Mode:
 * - Enabled by default (`bulletproof=true`) for security-critical methods
 * - Throws SanitizerError instead of returning empty/invalid values
 * - Validates numeric ranges, leading zeros, type coercion attacks
 * - ~5-15% performance overhead; disable for performance-critical paths
 */
export type SanitizerType = Readonly<{
    parseAmount: (value: unknown, bulletproof?: boolean) => number;
    alphanumeric: (value: unknown) => string;
    alphanumericDotDash: (value: unknown) => string;
    /** Returns `null` when value isn't numeric; returns `0` for empty / negative numbers. */
    nonNegativeNumericStringOrNull: (value: unknown, bulletproof?: boolean) => number | null | string;
    addressText: (value: unknown) => string;
    emailLike: (value: unknown) => string;
    email: (value: unknown, bulletproof?: boolean) => string;
    messageText: (value: unknown) => string;
    numericDotOnly: (value: unknown) => string;
    ipAddressText: (value: unknown) => string;
    nameText: (value: unknown, bulletproof?: boolean) => string;
    alphaNumericColonDash: (value: unknown) => string;
    digitsOnly: (value: unknown, bulletproof?: boolean) => string;
    decimalString: (value: unknown, bulletproof?: boolean) => string;
    dateSlash: (value: unknown) => string;
    safePasswordChars: (value: unknown, bulletproof?: boolean) => string;
    wordCharsAndSpaces: (value: unknown) => string;
    lowercaseAlphanumeric: (value: unknown) => string;
    uppercaseAlphanumeric: (value: unknown) => string;
    alphanumericNoSpaces: (value: unknown) => string;
    dateSlashNoSpaces: (value: unknown) => string;
    uuidTokenSafe: (value: unknown) => string;
    tokenSafe: (value: unknown) => string;
    keyLike: (value: unknown) => string;
}>;
export declare const createSanitizer: () => SanitizerType;
export declare const Sanitizer: Readonly<{
    parseAmount: (value: unknown, bulletproof?: boolean) => number;
    alphanumeric: (value: unknown) => string;
    alphanumericDotDash: (value: unknown) => string;
    /** Returns `null` when value isn't numeric; returns `0` for empty / negative numbers. */
    nonNegativeNumericStringOrNull: (value: unknown, bulletproof?: boolean) => number | null | string;
    addressText: (value: unknown) => string;
    emailLike: (value: unknown) => string;
    email: (value: unknown, bulletproof?: boolean) => string;
    messageText: (value: unknown) => string;
    numericDotOnly: (value: unknown) => string;
    ipAddressText: (value: unknown) => string;
    nameText: (value: unknown, bulletproof?: boolean) => string;
    alphaNumericColonDash: (value: unknown) => string;
    digitsOnly: (value: unknown, bulletproof?: boolean) => string;
    decimalString: (value: unknown, bulletproof?: boolean) => string;
    dateSlash: (value: unknown) => string;
    safePasswordChars: (value: unknown, bulletproof?: boolean) => string;
    wordCharsAndSpaces: (value: unknown) => string;
    lowercaseAlphanumeric: (value: unknown) => string;
    uppercaseAlphanumeric: (value: unknown) => string;
    alphanumericNoSpaces: (value: unknown) => string;
    dateSlashNoSpaces: (value: unknown) => string;
    uuidTokenSafe: (value: unknown) => string;
    tokenSafe: (value: unknown) => string;
    keyLike: (value: unknown) => string;
}>;
//# sourceMappingURL=Sanitizer.d.ts.map