import { AxiosInstance } from "axios"; export interface ConfluenceConfig { url: string; token: string; } export declare class ConfluenceClient { private axiosInstance; constructor(config: ConfluenceConfig, axiosInstance?: AxiosInstance); get(path: string, params?: Record, responseType?: "json" | "arraybuffer"): Promise>>; post(path: string, body?: unknown, headers?: Record): Promise>; put(path: string, body?: unknown): Promise>; delete(path: string, params?: Record): Promise>>; /** GET /rest/api/space — list spaces, optionally filtered by type ("global"|"personal"). */ listSpaces(params?: { type?: string; limit?: number; }): Promise>>; /** GET /rest/api/space/{spaceKey} */ getSpace(spaceKey: string): Promise>>; /** * GET /rest/api/content/{id} — expands body.storage/version/space so callers get a page's * content, version number, and owning space in one round trip. */ getContent(id: string): Promise>>; /** POST /rest/api/content */ createContent(body: unknown): Promise>; /** PUT /rest/api/content/{contentId} */ updateContent(contentId: string, body: unknown): Promise>; /** GET /rest/api/content/search — Confluence Query Language (CQL). */ searchContent(cql: string, limit?: number): Promise>>; /** GET /rest/api/space/{spaceKey}/permissions — requires space-admin permission. */ getSpacePermissions(spaceKey: string): Promise>>; }