import { z, ZodRawShape } from 'zod'; import { McpServer, ResourceMetadata, ReadResourceCallback, ReadResourceTemplateCallback, PromptCallback, ToolCallback, ResourceTemplate } from './mcp.js'; export type AuthMethod = 'loginToken' | 'componentCall' | 'signedToken'; export interface SessionUser { did: string; role: string; provider: string; method?: AuthMethod; [key: string]: unknown; } export type AccessPolicy = { allow?: { dids?: string[]; roles?: string[]; providers?: string[]; methods?: AuthMethod[]; }; deny?: { dids?: string[]; roles?: string[]; providers?: string[]; methods?: AuthMethod[]; }; }; interface RegisteredToolWithAuth { description?: string; inputSchema?: z.ZodObject; callback: ToolCallback; accessPolicy?: AccessPolicy; } interface RegisteredResourceWithAuth { name: string; metadata?: ResourceMetadata; readCallback: ReadResourceCallback; accessPolicy?: AccessPolicy; } interface RegisteredResourceTemplateWithAuth { resourceTemplate: ResourceTemplate; metadata?: ResourceMetadata; readCallback: ReadResourceTemplateCallback; accessPolicy?: AccessPolicy; } interface RegisteredPromptWithAuth { description?: string; argsSchema?: z.ZodObject; callback: PromptCallback; accessPolicy?: AccessPolicy; } export declare class McpServerWithAuth extends McpServer { protected _registeredTools: { [name: string]: RegisteredToolWithAuth; }; protected _registeredResources: { [uri: string]: RegisteredResourceWithAuth; }; protected _registeredResourceTemplates: { [name: string]: RegisteredResourceTemplateWithAuth; }; protected _registeredPrompts: { [name: string]: RegisteredPromptWithAuth; }; checkPermissions(user?: SessionUser, policy?: AccessPolicy): boolean; tool(name: string, cb: ToolCallback, accessPolicy?: AccessPolicy): void; tool(name: string, description: string, cb: ToolCallback, accessPolicy?: AccessPolicy): void; tool(name: string, paramsSchema: Args, cb: ToolCallback, accessPolicy?: AccessPolicy): void; tool(name: string, description: string, paramsSchema: Args, cb: ToolCallback, accessPolicy?: AccessPolicy): void; resource(name: string, uri: string, readCallback: ReadResourceCallback, accessPolicy?: AccessPolicy): void; resource(name: string, uri: string, metadata: ResourceMetadata, readCallback: ReadResourceCallback, accessPolicy?: AccessPolicy): void; resource(name: string, template: ResourceTemplate, readCallback: ReadResourceTemplateCallback, accessPolicy?: AccessPolicy): void; resource(name: string, template: ResourceTemplate, metadata: ResourceMetadata, readCallback: ReadResourceTemplateCallback, accessPolicy?: AccessPolicy): void; prompt(name: string, cb: PromptCallback, accessPolicy?: AccessPolicy): void; prompt(name: string, description: string, cb: PromptCallback, accessPolicy?: AccessPolicy): void; prompt(name: string, argsSchema: Args, cb: PromptCallback, accessPolicy?: AccessPolicy): void; prompt(name: string, description: string, argsSchema: Args, cb: PromptCallback, accessPolicy?: AccessPolicy): void; } export {}; //# sourceMappingURL=mcp-auth.d.ts.map