declare enum SecurityLevel {
	SAFE = "safe",
	LOW_RISK = "low_risk",
	MEDIUM_RISK = "medium_risk",
	HIGH_RISK = "high_risk",
	CRITICAL = "critical"
}
type SecurityThreat = {
	pattern: RegExp
	name: string
	description: string
	level: SecurityLevel
	category: "DML" | "DDL" | "DCL" | "INJECTION" | "ADMIN" | "SYSTEM"
};
type QueryAnalysis = {
	securityLevel: SecurityLevel
	isDangerous: boolean
	isSelectOnly: boolean
	threats: Array<{
		name: string
		description: string
		level: SecurityLevel
		category: string
	}>
	recommendations: string[]
	allowExecution: boolean
};
type QuerySafetyResult = {
	isDangerous: boolean
	dangerousOperations: string[]
	isSelectOnly: boolean
};
type ConfirmationResult = {
	required: boolean
	level: SecurityLevel
	reason: string
};
type PolicyValidationResult = {
	isValid: boolean
	violations: string[]
	analysis: QueryAnalysis
};
type SecurityPolicy = {
	allowedOperations: string[]
	maxRiskLevel: SecurityLevel
	blockInjectionPatterns: boolean
	requireConfirmationFor: SecurityLevel[]
};
declare const SECURITY_THREATS: SecurityThreat[];
declare const SAFE_OPERATIONS: RegExp[];
/**
* Normalizes a SQL query by removing comments and extra whitespace
* @param query - Raw SQL query
* @returns Cleaned query string
*/
declare const normalizeQuery: (query: string) => string;
/**
* Checks if a query contains only safe read operations
* @param query - Normalized SQL query
* @returns true if query is read-only and safe
*/
declare const isReadOnlyQuery: (query: string) => boolean;
/**
* Generates security recommendations based on detected threats
* @param threats - Array of detected security threats
* @param isSelectOnly - Whether query is read-only
* @returns Array of recommendation strings
*/
declare const generateRecommendations: (threats: QueryAnalysis["threats"], isSelectOnly: boolean) => string[];
/**
* Analyzes SQL query for security threats and provides comprehensive safety assessment
* @param query - The SQL query to analyze
* @returns Detailed security analysis
*/
declare const analyzeQuerySecurity: (query: string) => QueryAnalysis;
/**
* Enhanced function to check if query needs user confirmation
* @param query - The SQL query to check
* @returns Object with confirmation details
*/
declare const needsConfirmation: (query: string) => ConfirmationResult;
/**
* Validates query against specific security policies
* @param query - SQL query to validate
* @param allowedOperations - Array of allowed operation types
* @returns Validation result
*/
declare const validateQueryAgainstPolicy: (query: string, allowedOperations?: string[]) => PolicyValidationResult;
/**
* Quick safety check for simple use cases
* @param query - SQL query to check
* @returns true if query is safe to execute
*/
declare const isQuerySafe: (query: string) => boolean;
/**
* Gets a human-readable security summary
* @param query - SQL query to analyze
* @returns Summary string
*/
declare const getQuerySecuritySummary: (query: string) => string;
/**
* Gets security level color for UI display
* @param level - Security level
* @returns Color code for UI
*/
declare const getSecurityLevelColor: (level: SecurityLevel) => string;
/**
* Main class for SQL query safety checking
*/
declare class SQLQuerySafetyChecker {
	/**
	* Analyze a SQL query for security threats
	* @param query - SQL query to analyze
	* @returns Comprehensive security analysis
	*/
	analyzeQuery(query: string): QueryAnalysis;
	/**
	* Quick safety check for a SQL query
	* @param query - SQL query to check
	* @returns Basic safety result
	*/
	checkQuerySafety(query: string): QuerySafetyResult;
	/**
	* Check if a query is read-only (SELECT only)
	* @param query - SQL query to check
	* @returns true if query is SELECT only
	*/
	isSelectOnlyQuery(query: string): boolean;
	/**
	* Check if a query requires user confirmation before execution
	* @param query - SQL query to check
	* @returns Confirmation requirement details
	*/
	requiresConfirmation(query: string): ConfirmationResult;
	/**
	* Validate a query against a security policy
	* @param query - SQL query to validate
	* @param policy - Security policy to validate against
	* @returns Policy validation result
	*/
	validateAgainstPolicy(query: string, policy: SecurityPolicy): PolicyValidationResult;
	/**
	* Get a human-readable security summary
	* @param query - SQL query to analyze
	* @returns Summary string
	*/
	getSecuritySummary(query: string): string;
	/**
	* Check if a query is safe to execute
	* @param query - SQL query to check
	* @returns true if safe to execute
	*/
	isSafe(query: string): boolean;
}
/**
* Create a new instance of SQLQuerySafetyChecker
* @returns New SQLQuerySafetyChecker instance
*/
declare const createSafetyChecker: () => SQLQuerySafetyChecker;
export { validateQueryAgainstPolicy, normalizeQuery, needsConfirmation, isReadOnlyQuery, isQuerySafe, getSecurityLevelColor, getQuerySecuritySummary, generateRecommendations, createSafetyChecker, analyzeQuerySecurity, SecurityThreat, SecurityPolicy, SecurityLevel, SQLQuerySafetyChecker, SECURITY_THREATS, SAFE_OPERATIONS, QuerySafetyResult, QueryAnalysis, PolicyValidationResult, ConfirmationResult };
