import { FlowBase, type FlowRunOptions } from '../../common'; declare const inputSchema: import("@frontmcp/lazy-zod").ZodObject<{ request: import("@frontmcp/lazy-zod").ZodObject<{ method: import("@frontmcp/lazy-zod").ZodLiteral<"skills/search">; params: import("@frontmcp/lazy-zod").ZodObject<{ query: import("@frontmcp/lazy-zod").ZodString; tags: import("@frontmcp/lazy-zod").ZodOptional>; tools: import("@frontmcp/lazy-zod").ZodOptional>; limit: import("@frontmcp/lazy-zod").ZodDefault; requireAllTools: import("@frontmcp/lazy-zod").ZodDefault; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>; ctx: import("@frontmcp/lazy-zod").ZodUnknown; }, import("zod/v4/core").$strip>; declare const outputSchema: import("@frontmcp/lazy-zod").ZodObject<{ skills: import("@frontmcp/lazy-zod").ZodArray>; tools: import("@frontmcp/lazy-zod").ZodArray>; source: import("@frontmcp/lazy-zod").ZodEnum<{ external: "external"; local: "local"; }>; }, import("zod/v4/core").$strip>>; total: import("@frontmcp/lazy-zod").ZodNumber; hasMore: import("@frontmcp/lazy-zod").ZodBoolean; }, import("zod/v4/core").$strip>; declare const stateSchema: import("@frontmcp/lazy-zod").ZodObject<{ query: import("@frontmcp/lazy-zod").ZodString; options: import("@frontmcp/lazy-zod").ZodObject<{ tags: import("@frontmcp/lazy-zod").ZodOptional>; tools: import("@frontmcp/lazy-zod").ZodOptional>; topK: import("@frontmcp/lazy-zod").ZodOptional; requireAllTools: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>; results: import("@frontmcp/lazy-zod").ZodArray; output: import("@frontmcp/lazy-zod").ZodObject<{ skills: import("@frontmcp/lazy-zod").ZodArray>; tools: import("@frontmcp/lazy-zod").ZodArray>; source: import("@frontmcp/lazy-zod").ZodEnum<{ external: "external"; local: "local"; }>; }, import("zod/v4/core").$strip>>; total: import("@frontmcp/lazy-zod").ZodNumber; hasMore: import("@frontmcp/lazy-zod").ZodBoolean; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>; declare const plan: { readonly pre: ["parseInput"]; readonly execute: ["search"]; readonly finalize: ["finalize"]; }; declare global { interface ExtendFlows { 'skills:search': FlowRunOptions; } } declare const name: "skills:search"; /** * Flow for searching skills. * * This flow handles skill discovery by searching through both local * and external skill providers. Results include relevance scores * and tool availability information. * * @example MCP Request * ```json * { * "method": "skills/search", * "params": { * "query": "review pull request", * "tags": ["github"], * "limit": 10 * } * } * ``` */ export default class SearchSkillsFlow extends FlowBase { logger: import("../../common").FrontMcpLogger; parseInput(): Promise; search(): Promise; finalize(): Promise; /** * Remove search results the caller is not authorized to discover. * * Search-result metadata is projected from `SkillContent` and does NOT carry * the `authorities` field, so we resolve the live skill entry (by id/name) * to read its declared authorities, then evaluate via the scope's engine. * No-op when no authorities engine is configured; results unchanged. * * Evaluated WITHOUT request input — `fromInput`/ReBAC-by-input policies can't * be evaluated at search time and will be treated as a denial. Use * role/permission/claims-based authorities for discoverable skills. */ private filterResultsByAuthorities; } export {}; //# sourceMappingURL=search-skills.flow.d.ts.map