import { SecKavConfig } from '../types/common';
export interface SecKavMiddleware {
    expressMiddleware: () => any;
    nextMiddleware: () => any;
}
/**
 * SecKav Security SDK - Lightweight Client SDK for API Protection
 *
 * Core Features:
 * - Rate Limiting with DDoS protection
 * - API Firewall (WAF-lite) with threat detection
 * - Encryption Gateway with TLS enforcement
 * - Misconfiguration Scanner for security assessment
 * - Basic Analytics (sends data to dashboard)
 *
 * What this SDK does NOT do (handled by dashboard):
 * - User authentication/registration
 * - Organization management
 * - Compliance reporting
 * - Git integration
 */
export declare class SecKavSDK {
    private config;
    private rateLimit?;
    private security?;
    private encryption?;
    private misconfigurationScanner?;
    constructor(config: SecKavConfig);
    private initializeModules;
    /**
     * Get Express.js middleware with all enabled security features
     * This is the main integration point for most users
     */
    getExpressMiddleware(): any;
    /**
     * Get Next.js middleware
     */
    getNextMiddleware(): (req: any) => Promise<Response | null>;
    /**
     * Manual rate limit check (for custom implementations)
     */
    checkRateLimit(endpoint: string, method: string, clientId?: string): Promise<any>;
    /**
     * Get security settings (requires authentication token)
     */
    getSecuritySettings(token: string): Promise<any>;
    /**
     * Scan for misconfigurations (requires backend API)
     * This would typically be called from dashboard, not client SDK
     */
    scanMisconfigurations(token: string, files: Array<{
        name: string;
        content: string;
    }>): Promise<any>;
    /**
     * Get SDK information and enabled features
     */
    getInfo(): {
        version: string;
        organizationId: string;
        apiUrl: string;
        enabledFeatures: string[];
        availableFeatures: string[];
    };
    private getEnabledFeatures;
    /**
     * Send analytics data to dashboard (private method)
     */
    private sendAnalytics;
    /**
     * Update configuration at runtime
     */
    updateConfig(newConfig: Partial<SecKavConfig>): void;
}
export declare function createSecKavMiddleware(config: SecKavConfig): any;
export declare function createSecKavNextMiddleware(config: SecKavConfig): (req: any) => Promise<Response | null>;
//# sourceMappingURL=SecKavSDK.d.ts.map