/**
 * @josheverett/bullshit-detector
 *
 * Generic fact-checking and bullshit detection for any Node.js project requiring LLM-based analysis.
 * Uses OpenAI for single-call fact extraction and evaluation.
 */
export interface BullshitDetectionResult {
    transcript: string;
    claim: string;
    summary: string;
    bullshitLevel: number;
    confidence: number;
    reasoning: string;
    truth: string;
    externalSources?: Array<{
        source: string;
        rating?: string;
        url?: string;
        confidence?: number;
        summary?: string;
    }>;
    detectionMethod?: 'llm_only' | 'llm_with_api_enhancement' | 'api_first_with_llm_fallback';
}
export interface FactCheckAPI {
    name: string;
    enabled: boolean;
    config?: any;
}
export interface GoogleFactCheckConfig {
    apiKey: string;
    maxResults?: number;
}
export interface ClaimBusterConfig {
    apiKey?: string;
}
export interface WikipediaConfig {
    maxResults?: number;
    language?: string;
}
export interface BullshitDetectionConfig {
    model?: string;
    temperature?: number;
    maxTokens?: number;
    factCheckAPIs?: {
        googleFactCheck?: FactCheckAPI & {
            config?: GoogleFactCheckConfig;
        };
        claimBuster?: FactCheckAPI & {
            config?: ClaimBusterConfig;
        };
        wikipedia?: FactCheckAPI & {
            config?: WikipediaConfig;
        };
    };
    hybridStrategy?: 'llm_only' | 'api_first' | 'api_enhanced';
}
export interface OpenAIMessage {
    role: 'system' | 'user' | 'assistant';
    content: string;
}
interface GoogleFactCheckResult {
    text: string;
    claimant?: string;
    claimDate?: string;
    claimReview?: Array<{
        publisher: {
            name: string;
            site?: string;
        };
        url: string;
        title: string;
        reviewDate: string;
        textualRating: string;
        languageCode: string;
    }>;
}
interface ClaimBusterResult {
    score: number;
    claim: string;
}
interface WikipediaSearchResult {
    title: string;
    snippet: string;
    url: string;
    confidence: number;
}
export declare function checkWithGoogleFactCheck(claim: string, config: GoogleFactCheckConfig): Promise<GoogleFactCheckResult[]>;
export declare function checkWithClaimBuster(claim: string, config: ClaimBusterConfig): Promise<ClaimBusterResult | null>;
export declare function searchWikipedia(claim: string, config: WikipediaConfig): Promise<WikipediaSearchResult[]>;
/**
 * Detects bullshit in text using OpenAI for fact-checking analysis
 * @param input Either a string to analyze or an array of OpenAI-formatted messages
 * @param config Optional configuration for the detection process
 * @returns Promise resolving to array of bullshit detection results (one per factual claim)
 */
export declare function detectBullshit(input: string | OpenAIMessage[], config?: BullshitDetectionConfig): Promise<BullshitDetectionResult[]>;
export interface StatementEvaluation {
    claim: string;
    bullshitLevel: number;
    confidence: number;
    reasoning: string;
    truth: string;
}
export interface BullshitDetectorConfig {
    maxStatements?: number;
    confidenceThreshold?: number;
}
export declare class BullshitDetector {
    private config;
    constructor(config?: BullshitDetectorConfig);
    analyzeTranscript(transcript: string): Promise<StatementEvaluation[]>;
    evaluateClaim(claim: string): Promise<StatementEvaluation>;
}
export default detectBullshit;
//# sourceMappingURL=index.d.ts.map