/**
 * JSON Extraction Utilities
 *
 * Utilities for extracting JSON from mixed text content.
 * Particularly useful for parsing AI responses that contain JSON within prose.
 */
/**
 * Extract JSON string from text that may contain surrounding content.
 *
 * Searches for valid JSON in the following order:
 * 1. Direct parse of the entire text
 * 2. JSON within markdown code blocks (```json ... ``` or ``` ... ```)
 * 3. JSON object pattern ({ ... })
 * 4. JSON array pattern ([ ... ])
 *
 * @param text - Text that may contain JSON
 * @returns Extracted JSON string or null if none found
 *
 * @example
 * ```typescript
 * const response = "Here's the data: {\"name\": \"test\"} Let me know if you need more.";
 * const json = extractJsonStringFromText(response);
 * // Returns: '{"name": "test"}'
 * ```
 */
export declare function extractJsonStringFromText(text: string): string | null;
/**
 * Extract and parse JSON from mixed text content.
 *
 * Useful for parsing AI responses that contain JSON within prose.
 * Combines extraction and parsing in one step.
 *
 * @param text - Text that may contain JSON
 * @returns Parsed JSON value or null if not found/invalid
 *
 * @example
 * ```typescript
 * const response = `
 *   Here is your configuration:
 *   \`\`\`json
 *   {"theme": "dark", "fontSize": 14}
 *   \`\`\`
 *   Let me know if you need changes.
 * `;
 * const config = extractJsonFromText(response);
 * // Returns: { theme: "dark", fontSize: 14 }
 * ```
 */
export declare function extractJsonFromText(text: string): unknown | null;
import type { JsonTypeGuard } from "../../types/index.js";
/**
 * Parse JSON from text with optional type validation.
 *
 * Extracts JSON from text and optionally validates it against a type guard.
 * Useful when you need type-safe parsing of AI responses.
 *
 * @param text - Text that may contain JSON
 * @param validator - Optional type guard to validate the parsed result
 * @returns Parsed and validated JSON or null if not found/invalid/fails validation
 *
 * @example
 * ```typescript
 * interface UserConfig {
 *   theme: string;
 *   fontSize: number;
 * }
 *
 * function isUserConfig(obj: unknown): obj is UserConfig {
 *   return (
 *     typeof obj === 'object' &&
 *     obj !== null &&
 *     'theme' in obj &&
 *     'fontSize' in obj &&
 *     typeof (obj as UserConfig).theme === 'string' &&
 *     typeof (obj as UserConfig).fontSize === 'number'
 *   );
 * }
 *
 * const config = parseJsonFromText<UserConfig>(aiResponse, isUserConfig);
 * if (config) {
 *   // config is typed as UserConfig
 *   console.log(config.theme, config.fontSize);
 * }
 * ```
 */
export declare function parseJsonFromText<T>(text: string, validator?: JsonTypeGuard<T>): T | null;
/**
 * Extract all JSON objects/arrays from text.
 *
 * Useful when text contains multiple JSON blocks.
 *
 * @param text - Text that may contain multiple JSON values
 * @returns Array of parsed JSON values
 *
 * @example
 * ```typescript
 * const text = 'First: {"a": 1} Second: {"b": 2}';
 * const results = extractAllJsonFromText(text);
 * // Returns: [{ a: 1 }, { b: 2 }]
 * ```
 */
export declare function extractAllJsonFromText(text: string): unknown[];
