import type { CloudflareConfig } from "./types.js"; export declare class CloudflareClient { private readonly http; private readonly config; constructor(config: CloudflareConfig); get(path: string, params?: Record): Promise; post(path: string, data?: unknown): Promise; put(path: string, data?: unknown): Promise; patch(path: string, data?: unknown): Promise; delete(path: string): Promise; /** * GET a raw text response (not JSON). Used for endpoints like DNS export * that return BIND zone text rather than a JSON CloudflareResponse envelope. */ getRaw(path: string, params?: Record): Promise; /** * GET a response and return both the parsed result and the response headers. * Used for endpoints where we need header values (e.g., X-RateLimit-*). */ getWithHeaders(path: string, params?: Record): Promise<{ result: T; headers: Record; }>; /** * POST with multipart/form-data (used for DNS import endpoint). */ postForm(path: string, formData: FormData): Promise; /** * PUT with multipart/form-data (used for Workers script upload). */ putForm(path: string, formData: FormData): Promise; /** * PUT a raw text body (not JSON). Used for KV value writes. */ putRaw(path: string, body: string): Promise; graphql(query: string, variables?: Record): Promise; /** * Resolve a zone name or ID to a zone ID. * If `nameOrId` is a 32-character hex string, it is treated as an ID and returned as-is. * Otherwise, the zone name is looked up via the Cloudflare API. */ getAccountId(): string | undefined; resolveZoneId(nameOrId: string): Promise; private assertSuccess; static fromEnv(): CloudflareClient; } //# sourceMappingURL=cloudflare-client.d.ts.map