export declare enum PlanTier {
    BASIC = "basic",
    STANDARD = "standard",
    PREMIUM = "premium",
    ENTERPRISE = "enterprise"
}
export interface ResourceAllocation {
    cpu: string;
    memory: string;
    storage: string;
    replicas: number;
}
export interface ServiceResourceAllocation {
    rafikiAuth: ResourceAllocation;
    rafikiBackend: ResourceAllocation;
    nginx: ResourceAllocation;
    redis: ResourceAllocation;
}
export interface TierResourceAllocation {
    tier: PlanTier;
    displayName: string;
    description: string;
    monthlyPriceUSD: number;
    maxNamespaces: number;
    maxPersistentVolumeClaims: number;
    networkPoliciesEnabled: boolean;
    services: ServiceResourceAllocation;
    quota: {
        requests: {
            cpu: string;
            memory: string;
            storage: string;
        };
        limits: {
            cpu: string;
            memory: string;
            storage: string;
        };
        pods: number;
        services: number;
        secrets: number;
        configmaps: number;
        persistentvolumeclaims: number;
    };
}
export interface KubecostConfig {
    enabled: boolean;
    namespace: string;
    currency: string;
    billingAccountId?: string;
    costAllocationLabels: string[];
    alertingEnabled: boolean;
    budgetAlerts: {
        enabled: boolean;
        thresholds: number[];
    };
}
export interface TierConfiguration {
    planTier: PlanTier;
    resourceAllocation: TierResourceAllocation;
    kubecostConfig?: KubecostConfig;
    billingMetadata?: {
        customerId: string;
        subscriptionId: string;
        billingCycle: "monthly" | "annual";
    };
}
export declare const PLAN_TIER_DEFINITIONS: Record<PlanTier, TierResourceAllocation>;
export declare const DEFAULT_KUBECOST_CONFIG: KubecostConfig;
export declare function validateTierConfiguration(config: TierConfiguration): string[];
export declare function getTierConfiguration(tier: PlanTier): TierConfiguration;
export declare function calculateTierCosts(tier: PlanTier, usageDays?: number): {
    baseCost: number;
    estimatedResourceCost: number;
    totalEstimatedCost: number;
};
export declare function compareTiers(currentTier: PlanTier, targetTier: PlanTier): {
    isUpgrade: boolean;
    isDowngrade: boolean;
    resourceDelta: {
        cpu: string;
        memory: string;
        storage: string;
        replicas: number;
    };
    costDelta: number;
};
//# sourceMappingURL=plans.d.ts.map