/**
 * Arcis - One-line security for Node.js apps
 * A cross-platform security library
 *
 * @module @arcis/node
 * @version 1.5.0
 *
 * @example
 * // Full protection (recommended)
 * import { arcis } from '@arcis/node';
 * app.use(arcis());
 *
 * @example
 * // Granular control
 * app.use(arcis.headers());
 * app.use(arcis.rateLimit({ max: 100, windowMs: 60000 }));
 * app.use(arcis.sanitize());
 *
 * @example
 * // With validation
 * app.post('/users', arcis.validate({
 *   email: { type: 'email', required: true },
 *   age: { type: 'number', min: 0, max: 150 }
 * }), handler);
 */
export { arcis, arcisFunction } from './middleware/main';
export { default } from './middleware/main';
export { createRateLimiter, rateLimit } from './middleware/rate-limit';
export { createSlidingWindowLimiter } from './middleware/rate-limit-sliding';
export { createTokenBucketLimiter } from './middleware/rate-limit-token';
export { createHeaders, securityHeaders } from './middleware/headers';
export { errorHandler, createErrorHandler } from './middleware/error-handler';
export { safeCors, createCors } from './middleware/cors';
export { secureCookieDefaults, createSecureCookies, enforceSecureCookie } from './middleware/cookies';
export { botProtection, detectBot } from './middleware/bot-detection';
export { csrfProtection, createCsrf, generateCsrfToken, validateCsrfToken } from './middleware/csrf';
export { hpp, createHpp } from './middleware/hpp';
export { responseSplittingGuard, detectResponseSplitting, sanitizeResponseHeader, ResponseSplittingError, } from './middleware/response-splitting';
export type { ResponseSplittingGuardOptions } from './middleware/response-splitting';
export { tokenBudget } from './middleware/token-budget';
export type { TokenBudgetOptions, TokenBudgetMiddleware, } from './middleware/token-budget';
export { eventLoopProtection } from './middleware/overload';
export type { EventLoopProtectionOptions, EventLoopProtectionMiddleware, } from './middleware/overload';
export { methodAllowlist } from './middleware/method-allowlist';
export type { MethodAllowlistOptions } from './middleware/method-allowlist';
export { massAssign } from './middleware/mass-assign';
export type { MassAssignOptions } from './middleware/mass-assign';
export { protectLogin, protectSignup, protectApi } from './middleware/protect';
export type { ProtectLoginOptions, ProtectSignupOptions, ProtectApiOptions, CorrelationOptions, } from './middleware/protect';
export { graphqlGuard } from './middleware/graphql';
export type { GraphqlGuardMiddlewareOptions } from './middleware/graphql';
export { CorrelationWindow } from './middleware/correlation';
export type { CorrelationEvent, CorrelationDetections, CorrelationWindowOptions, } from './middleware/correlation';
export { inspectGraphqlQuery, detectGraphqlAbuse, } from './sanitizers/graphql';
export type { GraphqlGuardOptions, GraphqlGuardResult, GraphqlViolation, } from './sanitizers/graphql';
export { Guards } from './guards';
export type { GuardsConfig, GuardsInput, GuardsDecision, GuardsVector, GuardsSeverity, GuardsRateLimitOptions, GuardsTokenBudgetOptions, GuardsPromptInjectionOptions, GuardsBotOptions, } from './guards';
export { signupProtection, checkSignup } from './middleware/signup-protection';
export type { SignupProtectionOptions, SignupCheckResult, SignupBlockReason, SignupProtectionMiddleware, } from './middleware/signup-protection';
export { sanitizeString, sanitizeObject, createSanitizer, } from './sanitizers/sanitize';
export { sanitizeXss, detectXss } from './sanitizers/xss';
export { sanitizeSql, detectSql } from './sanitizers/sql';
export { sanitizePath, detectPathTraversal } from './sanitizers/path';
export { sanitizeCommand, detectCommandInjection } from './sanitizers/command';
export { sanitizeSsti, detectSsti } from './sanitizers/ssti';
export { sanitizeXxe, detectXxe } from './sanitizers/xxe';
export { sanitizeJsonpCallback, detectJsonpInjection } from './sanitizers/jsonp';
export { detectPromptInjection, sanitizePromptInjection, } from './sanitizers/prompt-injection';
export type { DetectPromptInjectionResult, PromptInjectionMatch, PromptInjectionSeverity, } from './sanitizers/prompt-injection';
export { isDangerousNoSqlKey, detectNoSqlInjection } from './sanitizers/nosql';
export { isDangerousProtoKey, detectPrototypePollution } from './sanitizers/prototype';
export { sanitizeHeaderValue, sanitizeHeaders, detectHeaderInjection } from './sanitizers/headers';
export { scanPii, detectPii, redactPii, scanObjectPii, redactObjectPii } from './sanitizers/pii';
export { encodeForHtml, encodeForAttribute, encodeForJs, encodeForUrl, encodeForCss } from './sanitizers/encode';
export { validate, createValidator } from './validation/schema';
export { validateUrl, isUrlSafe } from './validation/url';
export { validateRedirect, isRedirectSafe } from './validation/redirect';
export { validateFile, sanitizeFilename, isDangerousExtension } from './validation/file';
export { validateEmail, verifyEmailMx, isValidEmailSyntax } from './validation/email';
export { parseDuration, formatDuration } from './utils/duration';
export { detectClientIp, isPrivateIp } from './utils/ip';
export { fingerprint } from './utils/fingerprint';
export { createSafeLogger, createRedactor, safeLog } from './logging/redactor';
export { TelemetryClient, TelemetryHttpError } from './telemetry/client';
export type { TelemetryEvent, TelemetryOptions, TelemetryDecision, TelemetrySeverity, } from './telemetry/types';
export { MemoryStore } from './stores/memory';
export { RedisStore, createRedisStore } from './stores/redis';
export type { ArcisOptions, ArcisFunction, ArcisMiddleware, SanitizeOptions, SanitizeResult, ThreatInfo, ThreatType, RateLimitOptions, RateLimitStore, RateLimitEntry, RateLimitResult, RateLimiterMiddleware, HeaderOptions, HstsOptions, ValidationConfig, ValidationSchema, FieldValidator, ValidationResult, ValidationError, LogOptions, SafeLogger, ErrorHandlerOptions, HttpError, } from './core/types';
export type { ValidateUrlOptions, ValidateUrlResult } from './validation/url';
export { validateUrlAsync, pinnedDnsLookup, safeFollowRedirect, } from './validation/url-async';
export type { ValidateUrlAsyncOptions, ValidateUrlAsyncResult, DnsLookup, LookupAddress, } from './validation/url-async';
export type { CorsOptions } from './middleware/cors';
export type { SecureCookieOptions } from './middleware/cookies';
export type { ValidateFileOptions, FileInput, ValidateFileResult } from './validation/file';
export type { ValidateRedirectOptions, ValidateRedirectResult } from './validation/redirect';
export type { RedisClientLike, RedisStoreOptions } from './stores/redis';
export type { Platform, DetectIpOptions } from './utils/ip';
export type { FingerprintOptions } from './utils/fingerprint';
export type { EmailValidationOptions, EmailValidationResult } from './validation/email';
export type { SlidingWindowOptions, SlidingWindowMiddleware } from './middleware/rate-limit-sliding';
export type { TokenBucketOptions, TokenBucketMiddleware } from './middleware/rate-limit-token';
export type { BotCategory, BotDetectionResult, BotProtectionOptions } from './middleware/bot-detection';
export type { CsrfOptions } from './middleware/csrf';
export type { HppOptions } from './middleware/hpp';
export type { PiiType, PiiMatch, PiiScanOptions, PiiRedactOptions } from './sanitizers/pii';
export { ArcisError, ArcisValidationError, RateLimitError, InputTooLargeError, SecurityThreatError, SanitizationError, } from './core/errors';
export { INPUT, RATE_LIMIT, HEADERS, REDACTION, VALIDATION, ERRORS, BLOCKED, } from './core/constants';
//# sourceMappingURL=index.d.ts.map