import { FlowBase, ToolEntry, type FlowRunOptions } from '../../common'; import 'reflect-metadata'; import { z } from '@frontmcp/lazy-zod'; import { type AuthInfo } from '@frontmcp/protocol'; import { type AdapterPlatformType as AIPlatformType } from '@frontmcp/uipack/adapters'; declare const inputSchema: import("@frontmcp/lazy-zod").ZodObject<{ request: import("@frontmcp/lazy-zod").ZodObject<{ params: import("@frontmcp/lazy-zod").ZodOptional>; "io.modelcontextprotocol/related-task": import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$loose>>; cursor: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; method: import("@frontmcp/lazy-zod").ZodLiteral<"tools/list">; }, import("zod/v4/core").$strip>; ctx: import("@frontmcp/lazy-zod").ZodUnknown; }, import("zod/v4/core").$strip>; declare const outputSchema: import("@frontmcp/lazy-zod").ZodObject<{ _meta: import("@frontmcp/lazy-zod").ZodOptional>; "io.modelcontextprotocol/related-task": import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$loose>>; nextCursor: import("@frontmcp/lazy-zod").ZodOptional; tools: import("@frontmcp/lazy-zod").ZodArray; inputSchema: import("@frontmcp/lazy-zod").ZodObject<{ type: import("@frontmcp/lazy-zod").ZodLiteral<"object">; properties: import("@frontmcp/lazy-zod").ZodOptional>>; required: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$catchall>; outputSchema: import("@frontmcp/lazy-zod").ZodOptional; properties: import("@frontmcp/lazy-zod").ZodOptional>>; required: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$catchall>>; annotations: import("@frontmcp/lazy-zod").ZodOptional; readOnlyHint: import("@frontmcp/lazy-zod").ZodOptional; destructiveHint: import("@frontmcp/lazy-zod").ZodOptional; idempotentHint: import("@frontmcp/lazy-zod").ZodOptional; openWorldHint: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; execution: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>>; _meta: import("@frontmcp/lazy-zod").ZodOptional>; icons: import("@frontmcp/lazy-zod").ZodOptional; sizes: import("@frontmcp/lazy-zod").ZodOptional>; theme: import("@frontmcp/lazy-zod").ZodOptional>; }, import("zod/v4/core").$strip>>>; name: import("@frontmcp/lazy-zod").ZodString; title: import("@frontmcp/lazy-zod").ZodOptional; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$loose>; declare const stateSchema: import("@frontmcp/lazy-zod").ZodObject<{ cursor: import("@frontmcp/lazy-zod").ZodOptional; authInfo: z.ZodType; platformType: z.ZodType; tools: import("@frontmcp/lazy-zod").ZodArray>; }>, import("../../common").ToolOutputType, unknown, unknown>, ToolEntry>; }>, import("../../common").ToolOutputType, unknown, unknown>>; }, import("zod/v4/core").$strip>>; resolvedTools: import("@frontmcp/lazy-zod").ZodArray>; }>, import("../../common").ToolOutputType, unknown, unknown>, ToolEntry>; }>, import("../../common").ToolOutputType, unknown, unknown>>; finalName: import("@frontmcp/lazy-zod").ZodString; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>; declare const plan: { readonly pre: ["parseInput", "ensureRemoteCapabilities"]; readonly execute: ["findTools", "filterByAuthorities", "resolveConflicts"]; readonly post: ["parseTools"]; }; declare global { interface ExtendFlows { 'tools:list-tools': FlowRunOptions; } } declare const name: "tools:list-tools"; export default class ToolsListFlow extends FlowBase { logger: import("../../common").FrontMcpLogger; private sample; /** * Determine if pagination should be applied based on tool count and config. */ private shouldPaginate; /** * Parse a cursor string to extract the offset. * Cursor format: Base64-encoded JSON { offset: number } * * @throws InvalidInputError if cursor is malformed or contains invalid offset */ private parseCursor; /** * Encode an offset into a cursor string. */ private encodeCursor; parseInput(): Promise; /** * Ensure remote app capabilities are loaded before listing tools. * Remote apps use lazy capability discovery - this triggers the loading. * Uses provider registry to find all remote apps across all app registries. */ ensureRemoteCapabilities(): Promise; findTools(): Promise; /** * Filter tools by entry-level authorities (RBAC/ABAC/ReBAC). * Removes tools the current user is not authorized to see. * Hookable: developers can use Will/Did/Around on 'filterByAuthorities'. */ filterByAuthorities(): Promise; resolveConflicts(): Promise; parseTools(): Promise; } export {}; //# sourceMappingURL=tools-list.flow.d.ts.map