export interface INodeSchemaStub {
    name: string;
    type: string;
    displayName: string;
    description: string;
    version: number | number[];
    keywords?: string[];
    operations?: string[];
    useCases?: string[];
    relevanceScore?: number;
}
export interface IEnrichedNode {
    name: string;
    type: string;
    displayName: string;
    description: string;
    version: number | number[];
    usableAsTool?: boolean;
    group?: string[];
    icon?: string;
    schema: {
        properties: any;
        sourcePath: string;
    };
    metadata: {
        keywords: string[];
        operations: string[];
        useCases: string[];
        keywordScore: number;
        hasDocumentation: boolean;
        markdownUrl: string | null;
        markdownFile: string | null;
    };
    parameterGating?: Array<{
        flag: string;
        flagDisplay: string;
        default: boolean;
        gatedParams: string[];
        aiConnectionType: string | null;
    }>;
}
export interface NodeSchemaDiagnostics {
    enrichedIndexPath: string;
    customNodesPath?: string;
    officialNodeCount: number;
    totalNodeCount: number;
    customNodeCount: number;
    overriddenNodeCount: number;
    customNodesLoaded: boolean;
    customNodeKeys: string[];
}
export declare class NodeSchemaProvider {
    private index;
    private enrichedIndex;
    private enrichedIndexPath;
    private customNodesPath;
    private diagnostics;
    constructor(customIndexPath?: string, customNodesPath?: string);
    private loadIndex;
    private isToolCapableNode;
    private getShortName;
    private normalizeToolAlias;
    private cloneValue;
    private buildToolVariantProperties;
    private createSyntheticToolNode;
    private injectSyntheticToolNodes;
    private getAliasCandidates;
    getDiagnostics(): NodeSchemaDiagnostics;
    /**
     * Get the full JSON schema for a specific node by name.
     * Accepts short names (httpRequest) or full type prefixed names
     * (n8n-nodes-base.httpRequest, @n8n/n8n-nodes-langchain.agent).
     * Returns null if not found.
     */
    getNodeSchema(nodeName: string): any | null;
    private formatNode;
    /**
     * Calculate relevance score for a node based on query
     */
    private calculateRelevance;
    /**
     * Fuzzy search for nodes with improved relevance scoring.
     * Returns a list of matches (stub only, not full schema).
     */
    searchNodes(query: string, limit?: number): INodeSchemaStub[];
    /**
     * List all available nodes (compact format).
     */
    listAllNodes(): INodeSchemaStub[];
}
//# sourceMappingURL=node-schema-provider.d.ts.map