/**
 * Resource registration for the Amazon Seller MCP Server
 */
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
/**
 * Base resource registration options
 */
export interface ResourceRegistrationOptions {
    /**
     * Resource title
     */
    title: string;
    /**
     * Resource description
     */
    description: string;
}
/**
 * Resource handler function
 */
export type ResourceHandler = (uri: URL, params: Record<string, string>) => Promise<{
    contents: Array<{
        uri: string;
        text: string;
        mimeType?: string;
    }>;
}>;
/**
 * Resource completion function
 */
export type ResourceCompletionFunction = (value: string) => Promise<string[]>;
/**
 * Resource completions configuration
 */
export interface ResourceCompletions {
    [param: string]: ResourceCompletionFunction;
}
/**
 * Resource registration manager
 */
export declare class ResourceRegistrationManager {
    private server;
    private registeredResources;
    /**
     * Creates a new resource registration manager
     * @param server MCP server instance
     */
    constructor(server: McpServer);
    /**
     * Registers a resource with the MCP server
     *
     * @param name Resource name
     * @param template Resource template
     * @param options Resource registration options
     * @param handler Resource handler function
     * @returns True if the resource was registered, false if it was already registered
     */
    registerResource(name: string, template: ResourceTemplate, options: ResourceRegistrationOptions, handler: ResourceHandler): boolean;
    /**
     * Creates a resource template
     *
     * @param uriTemplate URI template string
     * @param listTemplate Optional list template string
     * @param completions Optional completions configuration
     * @returns Resource template
     */
    createResourceTemplate(uriTemplate: string, listTemplate?: string, completions?: ResourceCompletions): ResourceTemplate;
    /**
     * Gets the list of registered resource names
     * @returns Array of registered resource names
     */
    getRegisteredResources(): string[];
    /**
     * Checks if a resource is registered
     * @param name Resource name
     * @returns True if the resource is registered, false otherwise
     */
    isResourceRegistered(name: string): boolean;
}
