/** * fastCRW Tool * * Web scraping, crawling, and content extraction. * Firecrawl-compatible web scraper; single binary; self-host or cloud. * Reuses @mendable/firecrawl-js pointed at the fastCRW API. */ import type { ToolMetadata, PraisonTool } from '../registry/types'; export declare const CRW_METADATA: ToolMetadata; export interface CrwScrapeConfig { formats?: ('markdown' | 'html' | 'rawHtml' | 'links' | 'screenshot')[]; onlyMainContent?: boolean; includeTags?: string[]; excludeTags?: string[]; waitFor?: number; } export interface CrwCrawlConfig { limit?: number; maxDepth?: number; includePaths?: string[]; excludePaths?: string[]; allowBackwardLinks?: boolean; allowExternalLinks?: boolean; } export interface CrwScrapeInput { url: string; } export interface CrwCrawlInput { url: string; } export interface CrwScrapeResult { content: string; markdown?: string; html?: string; links?: string[]; metadata?: Record; } export interface CrwCrawlResult { pages: Array<{ url: string; content: string; markdown?: string; }>; } /** * Create a fastCRW Scrape tool. * * Scrapes a single web page using the Firecrawl-compatible fastCRW API, * returning LLM-ready content in markdown and optionally HTML, links, and metadata. * * @param config - Optional scraping configuration (formats, content filters, wait time). * @returns A PraisonTool that scrapes a single web page. * * @example * ```typescript * import { crwScrape } from 'praisonai'; * * const scraper = crwScrape({ formats: ['markdown', 'links'], onlyMainContent: true }); * const result = await scraper.execute({ url: 'https://example.com' }); * console.log(result.content); * ``` */ export declare function crwScrape(config?: CrwScrapeConfig): PraisonTool; /** * Create a fastCRW Crawl tool. * * Crawls a website starting from a URL, following links and extracting content * from multiple pages using the Firecrawl-compatible fastCRW API. * * @param config - Optional crawl configuration (depth limits, path filters, link policies). * @returns A PraisonTool that crawls a website and extracts content from multiple pages. * * @example * ```typescript * import { crwCrawl } from 'praisonai'; * * const crawler = crwCrawl({ limit: 10, maxDepth: 2, includePaths: ['/docs'] }); * const result = await crawler.execute({ url: 'https://example.com' }); * console.log(result.pages.length, 'pages crawled'); * ``` */ export declare function crwCrawl(config?: CrwCrawlConfig): PraisonTool; /** * Factory functions for registry */ export declare function createCrwScrapeTool(config?: CrwScrapeConfig): PraisonTool; export declare function createCrwCrawlTool(config?: CrwCrawlConfig): PraisonTool;