import { Headers } from "undici"; import type { AppConfig, LogLevel } from "../config.js"; import { type PaginationMeta } from "./pagination.js"; export interface RequestOptions { readonly method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD"; readonly query?: Record; readonly body?: unknown; readonly headers?: Record; } export interface JsonResponse { readonly data: T; readonly headers: Headers; readonly pagination: PaginationMeta; } export interface AuditEntry { readonly level?: LogLevel; readonly event: string; readonly tool?: string; readonly safety?: string; readonly status?: "ok" | "error" | "blocked"; readonly metadata?: Record; } export declare class GitLabClient { private readonly config; constructor(config: AppConfig); getJson(path: string, options?: Omit): Promise>; head(path: string, options?: Omit): Promise; postJson(path: string, options?: Omit): Promise>; putJson(path: string, options?: Omit): Promise>; patchJson(path: string, options?: Omit): Promise>; deleteJson(path: string, options?: Omit): Promise>; audit(entry: AuditEntry): Promise; requestJson(path: string, options?: RequestOptions): Promise>; private requestRaw; private readBody; private tryReadErrorBody; }