import { K8sResource, ResourceRef, type Ip4_Input_String, type PortMap, type PortMapping_Input, type Resource_Props_Top } from "@k8ts/instruments"; import { K8S } from "@k8ts/sample-interfaces"; import { v1 } from "../../../gvks/index"; import type { Workload_Ref } from "../../workload/workload-ref"; import { Service_PortRef } from "./service-port"; /** Short for ClusterIp with ClusterIp: None */ export interface Service_Frontend_Headless { type: "Headless"; } export interface Sevice_Frontend_ClusterIp { type: "ClusterIP"; clusterIp?: Ip4_Input_String | "None"; } export interface Service_Frontend_LoadBalancer { type: "LoadBalancer"; loadBalancerIP?: Ip4_Input_String; loadBalancerSourceRanges?: string[]; loadBalancerClass?: string; allocateLoadBalancerNodePorts?: boolean; clusterIp?: Ip4_Input_String; } export type Service_Frontend = Sevice_Frontend_ClusterIp | Service_Frontend_LoadBalancer | Service_Frontend_Headless; export interface Service_Props extends Resource_Props_Top { $ports: PortMapping_Input; $backend: Workload_Ref; $frontend: Service_Frontend; } export interface Service_Ref extends ResourceRef { ports: PortMap; } export declare class Service extends K8sResource> { __PORTS__: PortsExposed; get kind(): import("@k8ts/instruments").Gvk<"v1/Service">; private get _backend(); get ports(): PortMap; protected __needs__(): { backend: Workload_Ref; }; portRef(name: PortsExposed): Service_PortRef; get hostname(): string; private _getProtoPort; private _frontend; protected __body__(): K8S.KubeServiceProps; address(protocol: "http" | "https", port: PortsExposed): string; } //# sourceMappingURL=service.d.ts.map