export interface DocPage {
    id: string;
    title: string;
    url: string;
    urlPath: string;
    category: string;
    subcategory: string | null;
    nodeName: string | null;
    nodeType: string | null;
    content: {
        markdown: string;
        excerpt: string;
        sections: Array<{
            title: string;
            level: number;
            content: string;
        }>;
    };
    metadata: {
        keywords: string[];
        useCases: string[];
        operations: string[];
        codeExamples: number;
        complexity: string;
        readingTime: string;
        contentLength: number;
        relatedPages?: Array<{
            id: string;
            title: string;
            category: string;
        }>;
    };
}
export interface DocsComplete {
    generatedAt: string;
    version: string;
    sourceUrl: string;
    totalPages: number;
    statistics: {
        byCategory: Record<string, number>;
        withNodeNames: number;
        withUseCases: number;
        withCodeExamples: number;
    };
    categories: Record<string, {
        description: string;
        totalPages: number;
        pages: string[];
    }>;
    pages: DocPage[];
    searchIndex: {
        byKeyword: Record<string, string[]>;
        byCategory: Record<string, string[]>;
        byNodeName: Record<string, string[]>;
    };
}
export interface SearchDocsOptions {
    category?: string;
    complexity?: 'beginner' | 'intermediate' | 'advanced';
    hasCodeExamples?: boolean;
    limit?: number;
}
/**
 * Provider for accessing n8n documentation
 */
export declare class DocsProvider {
    private docs;
    private docsPath;
    constructor(customDocsPath?: string);
    /**
     * Load documentation
     */
    private loadDocs;
    /**
     * Search documentation pages
     */
    searchDocs(query: string, options?: SearchDocsOptions): DocPage[];
    /**
     * Get documentation page by ID
     */
    getDocPage(pageId: string): DocPage | null;
    /**
     * Get documentation page by title
     */
    getDocPageByTitle(title: string): DocPage | null;
    /**
     * List pages by category
     */
    listByCategory(category: string): DocPage[];
    /**
     * Get all categories
     */
    getCategories(): Array<{
        name: string;
        description: string;
        count: number;
    }>;
    /**
     * Find related pages
     */
    findRelated(pageId: string, limit?: number): DocPage[];
    /**
     * Search by keywords
     */
    searchByKeywords(keywords: string[]): DocPage[];
    /**
     * Get documentation for a specific node
     */
    getNodeDocumentation(nodeName: string): DocPage[];
    /**
     * Get examples (tutorials/advanced-ai pages)
     */
    getExamples(query?: string, limit?: number): DocPage[];
    /**
     * Get statistics
     */
    getStatistics(): {
        totalPages: number;
        byCategory: Record<string, number>;
        withNodeNames: number;
        withUseCases: number;
        withCodeExamples: number;
    } | null;
}
//# sourceMappingURL=docs-provider.d.ts.map