import type { APIGroupConfig, APIGroupDocumentation } from '@mondaydotcomorg/atp-protocol';
interface ExploreDirectoryResult {
    type: 'directory';
    path: string;
    items: Array<{
        name: string;
        type: 'directory' | 'function';
        description?: string;
    }>;
    documentation?: APIGroupDocumentation;
}
interface ExploreFunctionResult {
    type: 'function';
    path: string;
    name: string;
    description: string;
    definition: string;
    group: string;
    inputSchema?: any;
    outputSchema?: any;
}
export type ExploreResult = ExploreDirectoryResult | ExploreFunctionResult;
/**
 * ExplorerService provides filesystem-like navigation of API groups.
 * Enables progressive discovery of APIs by allowing agents to explore
 * tool hierarchies on-demand rather than loading everything upfront.
 */
export declare class ExplorerService {
    private root;
    private apiGroups;
    private apiGroupMap;
    constructor(apiGroups: APIGroupConfig[]);
    /**
     * Get filtering context based on current request's tool rules.
     * Returns sets for allowed items and all known items (for filtering).
     */
    private getFilterContext;
    /**
     * Check if a directory should be visible based on filter context.
     */
    private isDirectoryAllowed;
    /**
     * Builds the virtual filesystem tree from API groups
     */
    private buildTree;
    /**
     * Extract path segments for organizing functions
     */
    private extractSegments;
    /**
     * Ensures a directory exists at the given path
     */
    private ensureDirectory;
    /**
     * Adds a function to the tree
     */
    private addFunction;
    /**
     * Explores the filesystem at the given path.
     * Tool rules are automatically applied from the request scope.
     * @param path - The path to explore
     */
    explore(path: string): ExploreResult | null;
    /**
     * Normalizes a path (removes trailing slashes, ensures leading slash)
     */
    private normalizePath;
    /**
     * Generates TypeScript function signature showing how to call the function.
     */
    private generateFunctionDefinition;
    /**
     * Generates TypeScript type from JSON schema
     */
    private generateInputType;
    /**
     * Generates output type from JSON schema
     */
    private generateOutputType;
    /**
     * Converts JSON Schema type to TypeScript type
     */
    private jsonSchemaTypeToTS;
}
export {};
//# sourceMappingURL=index.d.ts.map