import { MCPPromptOptions } from '../../decorators/mcpPrompt';
import { MCPResourceOptions } from '../../decorators/mcpResource';
import { MCPToolOptions } from '../../decorators/mcpTool';
import { PaymentOptions } from '../../decorators/PaymentOptions';
export interface HandlerInfo {
    name: string;
    handler: Function;
    type: 'tool' | 'prompt' | 'resource' | 'resourceTemplate';
    options: MCPToolOptions | MCPPromptOptions | MCPResourceOptions;
    paymentOptions?: PaymentOptions;
    instance: any;
}
export type HandlerClass = new (...args: any[]) => any;
export interface SessionHandlers {
    tools: HandlerInfo[];
    prompts: HandlerInfo[];
    resources: HandlerInfo[];
    resourceTemplates: HandlerInfo[];
}
export declare class HandlerRegistry {
    static createSessionHandlers(handlerClasses: HandlerClass[]): SessionHandlers;
    static extractHandlersFromInstance(instance: any): HandlerInfo[];
    static isPaymentRequired(handlerInfo: HandlerInfo): boolean;
    static getPaymentOptions(handlerInfo: HandlerInfo): PaymentOptions | undefined;
}
