import { ThreatFeedResult, FeedConfiguration } from '../types';
export interface OTXPulse {
    id: string;
    name: string;
    description: string;
    author_name: string;
    public: boolean;
    created: string;
    modified: string;
    TLP: 'white' | 'green' | 'amber' | 'red';
    tags: string[];
    targeted_countries: string[];
    adversary: string;
    indicators: OTXIndicator[];
}
export interface OTXIndicator {
    id: number;
    indicator: string;
    type: string;
    title: string;
    description: string;
    created: string;
    is_active: boolean | number;
    access_type: 'public' | 'private' | 'redacted';
    content: string;
    role: string | null;
    expiration: string | null;
    observations: number;
}
export interface OTXResponse {
    count: number;
    next: string | null;
    previous: string | null;
    results: OTXPulse[];
}
export declare class AlienVaultFeed {
    private config;
    private httpClient;
    private lastFetch;
    private rateLimit;
    constructor(config?: Partial<FeedConfiguration>);
    fetchThreatData(): Promise<ThreatFeedResult>;
    fetchThreats(options?: {
        modifiedSince?: Date;
        limit?: number;
        minimumConfidence?: number;
    }): Promise<ThreatFeedResult>;
    private convertOTXIndicator;
    private calculateConfidence;
    private determineSeverity;
    private extractMalwareFamily;
    private checkRateLimit;
    testConnection(): Promise<boolean>;
    getStats(): {
        lastFetch: Date | null;
        nextAllowedFetch: Date;
        rateLimit: FeedConfiguration['rateLimit'];
        hasApiKey: boolean;
    };
    getConfig(): FeedConfiguration;
}
//# sourceMappingURL=AlienVaultFeed.d.ts.map