import type { Logger, DeploymentOptions } from "../../types/index.js";
interface HelmChartValues {
    companyName: string;
    namespace?: string;
    deploymentType: "shared" | "dedicated";
    planTier?: string;
    rafikiAuth: {
        enabled: boolean;
        name: string;
        image: {
            repository: string;
            tag: string;
            pullPolicy: string;
        };
        hpa?: {
            enabled: boolean;
            minReplicas?: number;
            maxReplicas?: number;
            targetCPUUtilizationPercentage?: number;
        };
        ports: {
            main: number;
            grant: number;
            admin: number;
        };
        service: {
            type: string;
            ports: {
                main: number;
                grant: number;
                admin: number;
            };
        };
        secrets: {
            name: string;
        };
    };
    rafikiBackend: {
        enabled: boolean;
        name: string;
        image: {
            repository: string;
            tag: string;
            pullPolicy: string;
        };
        hpa?: {
            enabled: boolean;
            minReplicas?: number;
            maxReplicas?: number;
            targetCPUUtilizationPercentage?: number;
        };
        ports: {
            openPayments: number;
            graphql: number;
            connector: number;
            admin: number;
            autopeering: number;
        };
        service: {
            type: string;
            ports: {
                openPayments: number;
                graphql: number;
                connector: number;
                admin: number;
                autopeering: number;
            };
        };
        secrets: {
            name: string;
        };
    };
    nginx: {
        enabled: boolean;
        name: string;
        image: {
            repository: string;
            tag: string;
            pullPolicy: string;
        };
        hpa?: {
            enabled: boolean;
            minReplicas?: number;
            maxReplicas?: number;
            targetCPUUtilizationPercentage?: number;
        };
        ports: {
            http: number;
        };
        service: {
            type: string;
            port: number;
        };
        config?: {
            serverNameIlp: string;
            serverNameAuth: string;
            serverNameConnector: string;
            graphqlAllowedIps: Array<string>;
        };
        configMap: {
            name: string;
        };
    };
    redis: {
        enabled: boolean;
        name: string;
        image: {
            repository: string;
            tag: string;
            pullPolicy: string;
        };
        ports: {
            redis: number;
        };
        service: {
            type: string;
            port: number;
        };
    };
    ingress: {
        enabled: boolean;
        name: string;
        className: string;
        annotations: Record<string, string>;
        hosts: {
            [key: string]: {
                host: string;
                paths: Array<{
                    path: string;
                    pathType: string;
                    serviceNameSuffix: string;
                    servicePort: number;
                }>;
            };
        };
    };
    networkPolicy?: {
        enabled: boolean;
        allowIngressFrom?: Array<Record<string, any>>;
        allowEgressTo?: Array<{
            cidr?: string;
            namespaceSelector?: Record<string, any>;
            ports?: Array<{
                port: number;
                protocol: string;
            }>;
        }>;
        allowEgressPorts?: Array<{
            port: number;
            protocol: string;
        }>;
    };
    monitoring?: {
        dashboards: {
            enabled: boolean;
        };
    };
    tierConfig?: Record<string, any>;
    tierResources?: {
        cpu?: string;
        memory?: string;
    };
    tierResourceQuota?: {
        enabled?: boolean;
        requests?: Record<string, string>;
        limits?: Record<string, string>;
        claims?: Record<string, string>;
    };
    gcp?: {
        backendConfig?: {
            healthCheck: {
                checkIntervalSec: number;
                port: number;
                type: string;
                requestPath: string;
            };
        };
        managedCertificate?: {
            enabled: boolean;
            domains: string[];
        };
    };
    aws?: {
        loadBalancer?: {
            healthCheck: {
                enabled: boolean;
                intervalSeconds: number;
                path: string;
                port: string;
                protocol: string;
                timeoutSeconds: number;
                unhealthyThresholdCount: number;
                healthyThresholdCount: number;
            };
        };
    };
    kubernetesSecrets?: {
        rafikiAuth: {
            create: boolean;
            name: string;
            stringData: Record<string, any>;
        };
        rafikiBackend: {
            create: boolean;
            name: string;
            stringData: Record<string, any>;
        };
    };
}
export declare function generateDynamicHelmValues(options: DeploymentOptions, logger: Logger): HelmChartValues;
export declare function mergeHelmValues(baseValues: HelmChartValues, tierValues: any, logger: Logger): any;
export {};
//# sourceMappingURL=helm-values-generator.d.ts.map