import { type KindClient } from '../kind-client.js';
import { SemVer } from 'semver';
import { KindCluster } from '../model/kind-cluster.js';
import { type ClusterCreateOptions } from '../model/create-cluster/cluster-create-options.js';
import { ClusterCreateResponse } from '../model/create-cluster/cluster-create-response.js';
import { ClusterDeleteResponse } from '../model/delete-cluster/cluster-delete-response.js';
import { type ClusterDeleteOptions } from '../model/delete-cluster/cluster-delete-options.js';
import { BuildNodeImagesResponse } from '../model/build-node-images/build-node-images-response.js';
import { type BuildNodeImagesOptions } from '../model/build-node-images/build-node-images-options.js';
import { ExportLogsResponse } from '../model/export-logs/export-logs-response.js';
import { ExportKubeConfigResponse } from '../model/export-kubeconfig/export-kubeconfig-response.js';
import { GetNodesResponse } from '../model/get-nodes/get-nodes-response.js';
import { type GetNodesOptions } from '../model/get-nodes/get-nodes-options.js';
import { type GetKubeConfigOptions } from '../model/get-kubeconfig/get-kubeconfig-options.js';
import { GetKubeConfigResponse } from '../model/get-kubeconfig/get-kubeconfig-response.js';
import { type LoadDockerImageOptions } from '../model/load-docker-image/load-docker-image-options.js';
import { LoadDockerImageResponse } from '../model/load-docker-image/load-docker-image-response.js';
import { type LoadImageArchiveOptions } from '../model/load-image-archive/load-image-archive-options.js';
import { LoadImageArchiveResponse } from '../model/load-image-archive/load-image-archive-response.js';
import { type SoloLogger } from '../../../core/logging/solo-logger.js';
export declare class DefaultKindClient implements KindClient {
    private readonly executable;
    private readonly logger?;
    private static minimumVersion;
    constructor(executable: string, logger?: SoloLogger);
    checkVersion(): Promise<void>;
    version(): Promise<SemVer>;
    createCluster(clusterName: string, options?: ClusterCreateOptions): Promise<ClusterCreateResponse>;
    deleteCluster(clusterName?: string, options?: ClusterDeleteOptions): Promise<ClusterDeleteResponse>;
    buildNodeImage(options?: BuildNodeImagesOptions): Promise<BuildNodeImagesResponse>;
    exportLogs(clusterName?: string): Promise<ExportLogsResponse>;
    exportKubeConfig(clusterName?: string): Promise<ExportKubeConfigResponse>;
    getClusters(): Promise<KindCluster[]>;
    getNodes(contextName?: string, options?: GetNodesOptions): Promise<GetNodesResponse>;
    getKubeConfig(contextName?: string, options?: GetKubeConfigOptions): Promise<GetKubeConfigResponse>;
    loadDockerImage(imageName: string, options?: LoadDockerImageOptions): Promise<LoadDockerImageResponse>;
    loadImageArchive(imageName: string, options?: LoadImageArchiveOptions): Promise<LoadImageArchiveResponse>;
    /**
     * Executes the given request and returns the response as the given class.
     * The request is executed using the default namespace.
     *
     * @param request - The request to execute
     * @param responseClass - The class of the response
     * @returns The response
     */
    private executeAsync;
    /**
     * Executes the given request and returns the response as a list of the given class.
     * The request is executed using the default namespace.
     *
     * @param request - The request to execute
     * @param responseClass - The class of the response
     * @returns A list of response objects
     */
    private executeAsList;
    private executeInternal;
}
