/**
 * Lightweight validation / type helper utilities used across the codebase.
 * Keep implementations small and dependency-free so they work in both
 * Node and Cloudflare Worker runtimes.
 */
/** Check whether value is a string primitive */
export declare const isString: (value: unknown) => value is string;
/** Check whether value is an array */
export declare const isArray: (value: unknown) => value is unknown[];
/** Check whether value is an object (and not null/array) */
export declare const isObject: (value: unknown) => value is Record<string, unknown>;
/** Check whether value is a function */
export declare const isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
/** Check whether value is a valid Date object */
export declare const isDate: (value: unknown) => value is Date;
/**
 * Check if value is "empty".
 * Matches legacy behavior: null, undefined, false, 0, '', '0' are all considered empty.
 */
export declare const isEmpty: (value: unknown) => boolean;
/** Check if value is null or string 'null'/'NULL' or empty string */
export declare const isNull: (value: unknown) => boolean;
/** Check if value is undefined */
export declare const isUndefined: (value: unknown) => boolean;
/** Check if value is undefined or satisfies isNull() */
export declare const isUndefinedOrNull: (value: unknown) => boolean;
/**
 * Check whether value is a boolean primitive.
 */
export declare function isBoolean(value: unknown, allowString?: false): value is boolean;
/**
 * Check whether value is a boolean primitive OR a boolean-like string.
 */
export declare function isBoolean(value: unknown, allowString: true): value is boolean | string;
/** Check if value is a string representation of a boolean (true/false/1/0) */
export declare const isBooleanString: (value: unknown) => boolean;
/** Check if value is a valid number or numeric string */
export declare const isNumeric: (value: unknown) => boolean;
/**
 * Check if value is an integer.
 */
export declare function isInt(value: unknown, allowString?: false, conditions?: {
    min?: number;
    max?: number;
}): value is number;
/**
 * Check if value is an integer OR a string representing an integer.
 */
export declare function isInt(value: unknown, allowString: true, conditions?: {
    min?: number;
    max?: number;
}): value is number | string;
/**
 * Check if value is a float (finite number).
 */
export declare function isFloat(value: unknown, allowString?: false, conditions?: {
    min?: number;
    max?: number;
}): value is number;
/**
 * Check if value is a float OR a string representing a float.
 */
export declare function isFloat(value: unknown, allowString: true, conditions?: {
    min?: number;
    max?: number;
}): value is number | string;
/** Check if value is a valid integer string (supports min/max) */
export declare const isIntString: (value: unknown, conditions?: {
    min?: number;
    max?: number;
}) => boolean;
/** Check if value is a valid float string (supports min/max) */
export declare const isFloatString: (value: unknown, conditions?: {
    min?: number;
    max?: number;
}) => boolean;
/** Check if value is a valid email string */
export declare const isEmail: (value: unknown) => boolean;
/** Check if value is a valid URL string (http/https) */
export declare const isUrl: (value: unknown) => boolean;
/** Check if string contains only letters */
export declare const isAlpha: (value: unknown) => boolean;
/** Check if string contains only letters and numbers */
export declare const isAlphanumeric: (value: unknown) => boolean;
/**
 * Check if string matches regex.
 *
 * Security/perf: Regex evaluation can be expensive for some patterns.
 * This helper defensively caps the input length to reduce ReDoS risk
 * when used on untrusted strings.
 */
export declare const isMatch: (value: unknown, regex: RegExp, options?: {
    maxLength?: number;
}) => boolean;
/** Check if value exists in array */
export declare const isIn: (value: unknown, array: unknown[]) => boolean;
/** Check if value does not exist in array */
export declare const isNotIn: (value: unknown, array: unknown[]) => boolean;
/** Check if string or array has exact length */
export declare const isLength: (value: unknown, length: number) => boolean;
/** Check if string or array has minimum length */
export declare const isMinLength: (value: unknown, min: number) => boolean;
/** Check if string or array has maximum length */
export declare const isMaxLength: (value: unknown, max: number) => boolean;
/** Check if value is a string with length > 0 (after trim) */
export declare const isNonEmptyString: (value: unknown) => value is string;
/** Check if value is an array with items */
export declare const isNonEmptyArray: (value: unknown) => value is unknown[];
/** Check if value is an object with keys */
export declare const isNonEmptyObject: (value: unknown) => value is Record<string, unknown>;
/**
 * Check if value is a string containing only whitespace.
 * Useful for distinguishing between truly empty and whitespace-only strings.
 */
export declare const isWhitespaceOnly: (value: unknown) => boolean;
/**
 * Check if value is a valid UUID v4 string.
 * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
 */
export declare const isUUID: (value: unknown) => boolean;
/**
 * Check if value is a valid JSON string (parses without error).
 */
export declare const isJSON: (value: unknown) => boolean;
/**
 * Check if value is a valid Base64-encoded string.
 */
export declare const isBase64: (value: unknown) => boolean;
/**
 * Check if value is a valid hexadecimal color string.
 * Accepts #RGB, #RGBA, #RRGGBB, #RRGGBBAA formats.
 */
export declare const isHexColor: (value: unknown) => boolean;
/**
 * Check if value is a valid URL slug (lowercase alphanumeric with hyphens).
 * Example: "my-blog-post", "user-profile-page"
 */
export declare const isSlug: (value: unknown) => boolean;
/**
 * Check if value is a string with uppercase letters.
 */
export declare const isUpperCase: (value: unknown) => boolean;
/**
 * Check if value is a string with lowercase letters.
 */
export declare const isLowerCase: (value: unknown) => boolean;
/** Check if number is positive (> 0) */
export declare const isPositive: (value: unknown) => boolean;
/** Check if number is negative (< 0) */
export declare const isNegative: (value: unknown) => boolean;
/** Check if number is zero */
export declare const isZero: (value: unknown) => boolean;
/** Check if number is even */
export declare const isEven: (value: unknown) => boolean;
/** Check if number is odd */
export declare const isOdd: (value: unknown) => boolean;
/**
 * Check if number has decimal places.
 * Examples: 1.5 → true, 1.0 → false, 1 → false
 */
export declare const isDecimal: (value: unknown) => boolean;
/**
 * Check if number is between min and max (inclusive).
 */
export declare const isBetween: (value: unknown, min: number, max: number) => boolean;
/**
 * Check if number is divisible by divisor.
 */
export declare const isDivisibleBy: (value: unknown, divisor: number) => boolean;
export declare const Helpers: Readonly<{
    isString: (value: unknown) => value is string;
    isBoolean: typeof isBoolean;
    isBooleanString: (value: unknown) => boolean;
    isEmpty: (value: unknown) => boolean;
    isNull: (value: unknown) => boolean;
    isUndefined: (value: unknown) => boolean;
    isUndefinedOrNull: (value: unknown) => boolean;
    isArray: (value: unknown) => value is unknown[];
    isObject: (value: unknown) => value is Record<string, unknown>;
    isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
    isDate: (value: unknown) => value is Date;
    isEmail: (value: unknown) => boolean;
    isUrl: (value: unknown) => boolean;
    isIn: (value: unknown, array: unknown[]) => boolean;
    isNotIn: (value: unknown, array: unknown[]) => boolean;
    isLength: (value: unknown, length: number) => boolean;
    isMinLength: (value: unknown, min: number) => boolean;
    isMaxLength: (value: unknown, max: number) => boolean;
    isMatch: (value: unknown, regex: RegExp, options?: {
        maxLength?: number;
    }) => boolean;
    isAlpha: (value: unknown) => boolean;
    isAlphanumeric: (value: unknown) => boolean;
    isNumeric: (value: unknown) => boolean;
    isInt: typeof isInt;
    isFloat: typeof isFloat;
    isIntString: (value: unknown, conditions?: {
        min?: number;
        max?: number;
    }) => boolean;
    isFloatString: (value: unknown, conditions?: {
        min?: number;
        max?: number;
    }) => boolean;
    isNonEmptyString: (value: unknown) => value is string;
    isNonEmptyArray: (value: unknown) => value is unknown[];
    isNonEmptyObject: (value: unknown) => value is Record<string, unknown>;
    isWhitespaceOnly: (value: unknown) => boolean;
    isUUID: (value: unknown) => boolean;
    isJSON: (value: unknown) => boolean;
    isBase64: (value: unknown) => boolean;
    isHexColor: (value: unknown) => boolean;
    isSlug: (value: unknown) => boolean;
    isUpperCase: (value: unknown) => boolean;
    isLowerCase: (value: unknown) => boolean;
    isPositive: (value: unknown) => boolean;
    isNegative: (value: unknown) => boolean;
    isZero: (value: unknown) => boolean;
    isEven: (value: unknown) => boolean;
    isOdd: (value: unknown) => boolean;
    isDecimal: (value: unknown) => boolean;
    isBetween: (value: unknown, min: number, max: number) => boolean;
    isDivisibleBy: (value: unknown, divisor: number) => boolean;
}>;
//# sourceMappingURL=index.d.ts.map