import type { NextFunction } from "express-serve-static-core";
import type { IUser, IWorkspace } from "../entities";
import type { IResponsePagination, KubeService } from "../interfaces";
import type { KubeNode } from "../interfaces/KubeNode";
import type { MonitoringQueryFilter } from "../interfaces/MonitoringQuery";
import { MonitoringNamespaceQueryFilter, MonitoringQueryOptions, MonitoringQueryParams } from "../interfaces/MonitoringQuery";
import type { AppRequest, Ownership } from "../interfaces/SystemTypes";
import { MonitorNamespaceCreateData, MonitorService } from "../services/MonitorService";
export default class MonitorController {
    user: IUser;
    workspace: IWorkspace;
    ownership: Ownership;
    service: MonitorService;
    filter: MonitoringQueryFilter;
    options: MonitoringQueryOptions;
    pagination: IResponsePagination;
    /**
     * Parse the filter & option from the URL
     */
    parseFilter(req: AppRequest, res?: Response, next?: NextFunction): void;
    /**
     * List of nodes in a cluster
     */
    getNodes(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData | KubeNode[]>;
    /**
     * List of namespaces in a cluster
     */
    getNamespaces(queryParams?: MonitoringNamespaceQueryFilter): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of all resources of a namespace in a cluster
     */
    allNamespaceResources(queryParams?: MonitoringNamespaceQueryFilter): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Create namespace in a cluster
     */
    createNamespace(body?: MonitorNamespaceCreateData): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Create namespace in a cluster
     */
    deleteNamespace(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of K8S services
     */
    getServices(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Create service in a namespace
     */
    createService(body?: {
        /**
         * Namespace's name
         */
        name: string;
        /**
         * @default "default"
         */
        namespace?: string;
        /**
         * Labels
         */
        labels?: {
            [key: string]: string;
        };
        /**
         * Spec
         */
        spec: KubeService["spec"];
    }, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Delete service in a namespace
     */
    deleteService(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of K8S Ingress
     */
    getIngresses(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Delete K8S Ingress
     */
    deleteIngresses(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of K8S Deployment
     */
    getDeploys(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Delete K8S Deployment
     */
    deleteDeploys(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of K8S StatefulSet
     */
    getStatefulSets(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Delete K8S StatefulSet
     */
    deleteStatefulSets(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of K8S Pod
     */
    getPods(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Delete K8S Pod
     */
    deletePods(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * List of K8S Secret
     */
    getSecrets(queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
    /**
     * Delete K8S Secret
     */
    deleteSecrets(body?: MonitoringQueryOptions, queryParams?: MonitoringQueryParams): Promise<import("../interfaces").ResponseData & IResponsePagination>;
}
//# sourceMappingURL=MonitorController.d.ts.map