/**
 * Input validation and sanitization
 * Ported from Python validators.py
 */
export interface WebSocketMessage {
    type: string;
    userID?: string;
    value?: string | number;
    id?: string;
    response?: string;
    message?: Record<string, unknown>;
    [key: string]: unknown;
}
export declare class ValidationError extends Error {
    readonly field?: string;
    constructor(message: string, field?: string);
}
/**
 * Input validator with common patterns
 */
export declare class Validator {
    /**
     * Validate user ID format.
     */
    static validateUserId(userId: unknown): string;
    /**
     * Validate game command.
     */
    static validateCommand(command: unknown): string;
    /**
     * Validate game speed.
     */
    static validateSpeed(speed: unknown): number;
    /**
     * Validate question/answer ID.
     */
    static validateAnswerId(answerId: unknown): string;
    /**
     * Validate and sanitize response text.
     */
    static validateResponseText(response: unknown): string;
    /**
     * Validate email format.
     */
    static validateEmail(email: unknown): string;
    /**
     * Validate positive integer.
     */
    static validatePositiveInt(value: unknown, field?: string): number;
    /**
     * Validate UUID format.
     */
    static validateUuid(uuid: unknown, field?: string): string;
    /**
     * Sanitize string for SQL (escape quotes).
     * NOTE: Should use parameterized queries instead when possible.
     */
    static sanitizeSqlString(value: string): string;
}
/**
 * Validate incoming WebSocket message.
 */
export declare function validateWebSocketMessage(message: unknown): WebSocketMessage;
export declare const validators: {
    ValidationError: typeof ValidationError;
    Validator: typeof Validator;
    validateWebSocketMessage: typeof validateWebSocketMessage;
};
//# sourceMappingURL=validators.d.ts.map