import type { RemoteToolSource, ToolDefinition, ToolExecutionContext } from "./types.js"; /** Options accepted by project-scoped remote tool. */ export type ProjectScopedRemoteToolOptions = { projectNavigationToolNames?: readonly string[]; }; /** Public API contract for project-scoped remote tool default project ID. */ export type ProjectScopedRemoteToolDefaultProjectId = string | null | undefined | (() => string | null | undefined); /** Options accepted by project-scoped remote tool catalog. */ export type ProjectScopedRemoteToolCatalogOptions = { source: RemoteToolSource; defaultProjectId?: ProjectScopedRemoteToolDefaultProjectId; allowedToolNames?: ReadonlySet | null; projectScopedRemoteToolOptions?: ProjectScopedRemoteToolOptions; filterToolDefinitions?: (input: { source: RemoteToolSource; toolDefinitions: readonly ToolDefinition[]; activeProjectId: string | null; context?: ToolExecutionContext; }) => Promise | ToolDefinition[]; }; /** Public API contract for project-scoped remote tool definitions. */ export type ProjectScopedRemoteToolDefinitions = { activeProjectId: string | null; toolDefinitions: ToolDefinition[]; }; /** Input payload for project-scoped remote tool execution. */ export type ProjectScopedRemoteToolExecutionInput = { toolName: string; toolInput: Record; context?: ToolExecutionContext; }; /** Public API contract for project-scoped remote tool execution. */ export type ProjectScopedRemoteToolExecution = ProjectScopedRemoteToolDefinitions & { toolDefinition: ToolDefinition; toolInput: Record; executeContext: ToolExecutionContext | undefined; }; /** Public API contract for project-scoped remote tool catalog. */ export type ProjectScopedRemoteToolCatalog = { id: string; listActiveToolDefinitions(context?: ToolExecutionContext): Promise; listTools(context?: ToolExecutionContext): Promise; prepareExecution(input: ProjectScopedRemoteToolExecutionInput): Promise; }; /** Options accepted by list project-scoped remote tool name. */ export type ListProjectScopedRemoteToolNameOptions = { projectId: string | null; context?: ToolExecutionContext; projectScopedRemoteToolOptions?: ProjectScopedRemoteToolOptions; }; /** Check whether a remote tool is project-navigation scoped. */ export declare function isProjectNavigationRemoteTool(toolName: string, options?: ProjectScopedRemoteToolOptions): boolean; /** Check whether a remote tool name is allowed. */ export declare function isRemoteToolNameAllowed(toolName: string, allowedToolNames: ReadonlySet | null | undefined): boolean; /** Filter project-scoped remote tool definitions. */ export declare function filterProjectScopedRemoteToolDefinitions(toolDefinitions: readonly ToolDefinition[], projectId: string | null, options?: ProjectScopedRemoteToolOptions): ToolDefinition[]; /** Input payload for hydrate project-scoped remote tool. */ export declare function hydrateProjectScopedRemoteToolInput(input: { toolDefinition: ToolDefinition | undefined; activeProjectId: string | null; toolInput: Record; }): Record; /** Resolves project-scoped remote tool project ID. */ export declare function resolveProjectScopedRemoteToolProjectId(context: ToolExecutionContext | undefined, defaultProjectId: string | null | undefined): string | null; /** Create project-scoped remote tool catalog. */ export declare function createProjectScopedRemoteToolCatalog(input: ProjectScopedRemoteToolCatalogOptions): ProjectScopedRemoteToolCatalog; /** List project-scoped remote tool names. */ export declare function listProjectScopedRemoteToolNames(remoteSources: readonly RemoteToolSource[], options: ListProjectScopedRemoteToolNameOptions): Promise; //# sourceMappingURL=project-scoped-remote-tools.d.ts.map