import type { RequestUrlParam, RequestUrlResponse } from 'obsidian'; import type { CustomFetch } from '../types/http.js'; /** * Creates a CustomFetch adapter for Obsidian's requestUrl API. * * This adapter bridges the gap between Obsidian's requestUrl interface and the * standard fetch-like interface expected by the Todoist API SDK. * * Key differences handled by this adapter: * - Obsidian returns response data as properties (response.json, response.text) * while the SDK expects methods (response.json(), response.text()) * - Obsidian's requestUrl bypasses CORS restrictions that would block standard fetch * - Obsidian throws on HTTP errors by default; we set throw: false to handle manually * - Obsidian doesn't provide statusText; we default to empty string * * @example * ```typescript * import { requestUrl } from 'obsidian'; * import { createObsidianFetchAdapter } from './obsidian-fetch-adapter.js'; * * const api = new TodoistApi('your-token', { * customFetch: createObsidianFetchAdapter(requestUrl) * }); * ``` * * @param requestUrl - The Obsidian requestUrl function * @returns A CustomFetch function compatible with the Todoist API SDK */ export declare function createObsidianFetchAdapter(requestUrl: (request: RequestUrlParam | string) => Promise): CustomFetch;