import type { BrowserType } from './types.js';
export interface Config {
    searxngUrl: string | null;
    searxngMode: 'native' | 'docker';
    searxngPort: number;
    fetchTimeoutMs: number;
    fetchMaxRetries: number;
    maxRedirects: number;
    playwrightLoadTimeoutMs: number;
    playwrightNavTimeoutMs: number;
    searxngQueryTimeoutMs: number;
    searchFetchTimeoutMs: number;
    searchTotalTimeoutMs: number;
    validateTimeoutMs: number;
    maxBrowsers: number;
    browserIdleTimeoutMs: number;
    browserFallbackThreshold: number;
    authStatePath: string | null;
    chromeProfilePath: string | null;
    cdpUrl: string | null;
    dataDir: string;
    cacheTtlSearch: number;
    cacheTtlContent: number;
    fastStaleMaxHours: number;
    fastTimeoutMs: number;
    crawlConcurrency: number;
    crawlDelayMs: number;
    crawlPrivateConcurrency: number;
    crawlPrivateDelayMs: number;
    useProxy: boolean;
    proxyUrl: string | null;
    userAgent: string | null;
    validateLinks: boolean;
    respectRobotsTxt: boolean;
    braveApiKey: string | null;
    /** GitHub API personal access token. When set, the github-code adapter
     * passes it as a Bearer token so search calls run authenticated. Lifts
     * the 10 req/min unauthed cap to 30 req/min, eliminates the most common
     * 401 path for org-private result hydration, and is the env var named
     * in engine_warnings hints. Optional — the adapter still runs unauthed. */
    githubToken: string | null;
    logLevel: 'debug' | 'info' | 'warn' | 'error';
    logFormat: 'json' | 'text';
    reranker: 'onnx' | 'none' | 'custom';
    rerankerModel: string;
    rerankerMaxLength: number;
    rerankerReadyTimeoutMs: number;
    rerankerRequestTimeoutMs: number;
    rerankerIdleTimeoutMs: number;
    relevanceThreshold: number;
    findSimilarColdStartThreshold: number;
    bootstrapMaxAttempts: number;
    bootstrapBackoffSeconds: number[];
    healthProbeIntervalMs: number;
    daemonPort: number;
    daemonHost: string;
    pluginsDir: string;
    browserTypes: BrowserType[];
    shellHistoryPath: string;
    multiQueryConcurrency: number;
    multiQueryMax: number;
    embeddingModel: string;
    embeddingIdleTimeoutMs: number;
    embeddingMaxTextLength: number;
    llmProvider: string | null;
    llmCacheTtlDays: number;
    llmMaxCallsPerRequest: number;
    /**
     * TLS-impersonation HTTP tier mode (slice D2):
     *   - 'off'  : tier disabled, current pipeline unchanged (DEFAULT)
     *   - 'auto' : only invoked on anti-bot signal (403/429/503 or challenge body)
     *   - 'on'   : tried first for cold domains, then HTTP, then Playwright
     */
    tlsTier: 'off' | 'auto' | 'on';
    /** Browser fingerprint profile passed to the TLS-impersonation backend. */
    tlsBrowser: string;
    /** Successes required before a domain is auto-promoted to TLS-first routing. */
    tlsSuccessThreshold: number;
}
export declare function validateTlsBrowser(raw: string | null | undefined, fallback: string): string;
export declare function getConfig(): Config;
export declare function resetConfig(): void;
//# sourceMappingURL=config.d.ts.map