import type { KubernetesObject, KubernetesTransport } from "./kubernetes.js";
interface KubernetesFetchResponse {
    readonly ok: boolean;
    readonly status: number;
    readonly statusText: string;
    json(): Promise<unknown>;
    text(): Promise<string>;
}
export type KubernetesFetch = (url: string, init: {
    method: string;
    headers: Readonly<Record<string, string>>;
    body?: string;
}) => Promise<KubernetesFetchResponse>;
export interface KubernetesApiTransportOptions {
    readonly apiBase: string;
    readonly bearerToken: string;
    readonly fieldManager?: string;
    readonly fetcher?: KubernetesFetch;
}
/**
 * Minimal Kubernetes HTTP transport for the exact resource families owned by
 * WorkspaceProvider. It uses server-side apply and never exposes Kubernetes SDK
 * objects outside this provider package.
 */
export declare class KubernetesApiTransport implements KubernetesTransport {
    private readonly apiBase;
    private readonly bearerToken;
    private readonly fieldManager;
    private readonly fetcher;
    constructor(options: KubernetesApiTransportOptions);
    static fromInCluster(env?: Readonly<Record<string, string | undefined>>, tokenPath?: string, caPath?: string): KubernetesApiTransport;
    apply(resource: KubernetesObject): Promise<KubernetesObject>;
    get(apiVersion: string, kind: string, namespace: string | undefined, name: string): Promise<KubernetesObject | undefined>;
    delete(apiVersion: string, kind: string, namespace: string | undefined, name: string): Promise<void>;
    private headers;
    private requireObject;
}
export declare function createNodeHttpsFetch(ca: string): KubernetesFetch;
export {};
//# sourceMappingURL=api-transport.d.ts.map