/**
 * Elicitation Request Schemas
 *
 * ⚠️ EXPERIMENTAL FEATURE - Limited Client Support
 *
 * ElicitationRequest is an MCP specification feature for requesting user input
 * at runtime using structured schemas. However, as of January 2025, few MCP clients
 * (including Claude Desktop) have confirmed full implementation.
 *
 * ## Status
 * - ✅ Spec Compliant: Code follows MCP specification (2025-06-18)
 * - ❌ Limited Client Support: Not widely implemented yet
 * - ✅ Alternative Available: Claude Desktop handles this via conversational follow-ups
 *
 * ## Why Keep It?
 * - Future client support (when available)
 * - Custom MCP client implementations
 * - HTTP mode with custom UI
 * - Reference implementation
 *
 * ## For Claude Desktop Users
 * Claude handles missing parameters naturally through conversation instead of
 * using structured elicitation requests.
 */
/**
 * Common elicitation schemas for Cisco Support scenarios
 * All schemas use flat object structure with primitive types only (per MCP spec)
 */
export declare const ElicitationSchemas: {
    /**
     * Request missing API credentials
     * Security Note: Never used for actual credential storage - only for user confirmation
     */
    apiCredentials: {
        type: string;
        properties: {
            clientId: {
                type: string;
                description: string;
            };
            confirm: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    /**
     * Request search refinement parameters
     * Used when initial search is too broad or needs filtering
     */
    searchRefinement: {
        type: string;
        properties: {
            severity: {
                type: string;
                enum: string[];
                description: string;
            };
            status: {
                type: string;
                enum: string[];
                description: string;
            };
            dateRange: {
                type: string;
                enum: string[];
                description: string;
            };
        };
        required: never[];
    };
    /**
     * Request user confirmation for potentially destructive actions
     * Used before executing operations that modify state or have significant impact
     */
    userConfirmation: {
        type: string;
        properties: {
            confirmed: {
                type: string;
                description: string;
            };
            reason: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    /**
     * Request product selection when multiple matches found
     * Used when search returns ambiguous results
     */
    productSelection: {
        type: string;
        properties: {
            selectedProduct: {
                type: string;
                description: string;
            };
            version: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
};
/**
 * Create an elicitation request (for future client support)
 *
 * @param message - Human-readable message explaining what input is needed
 * @param schema - JSON Schema for the requested input (must be flat object with primitives)
 * @returns Elicitation request object
 *
 * @example
 * ```typescript
 * const request = createElicitationRequest(
 *   'Please refine your search parameters',
 *   ElicitationSchemas.searchRefinement
 * );
 * ```
 */
export declare function createElicitationRequest(message: string, schema: any): {
    method: string;
    params: {
        message: string;
        requestedSchema: any;
    };
};
//# sourceMappingURL=schemas.d.ts.map