import type { AddOn } from '../models/pricing2yaml/addon';
import type { AutomationType, Feature, IntegrationType, PaymentType } from '../../types';
import type { Plan } from '../models/pricing2yaml/plan';
import type { Pricing } from '../models/pricing2yaml/pricing';
import type { FeatureType, RenderMode, UsageLimitType, ValueType } from '../models/pricing2yaml/types';
import type { ContainerUsageLimits, UsageLimit } from '../models/pricing2yaml/usage-limit';
export declare function validateName(name: string | null, item: string): string;
export declare function validateSyntaxVersion(version: string): string;
export declare function validateVersion(version: string | undefined, createdAt: Date): string;
export declare function validateCreatedAt(createdAt: string | Date | null): Date;
export declare function validateCurrency(currency: string | null): string;
export declare function validateDescription(description: string | null | undefined): string | undefined;
export declare function validateValueType(valueType: string | null): ValueType;
export declare function validateDefaultValue(elem: Feature | UsageLimit, item: string): number | boolean | string | PaymentType[];
export declare function validateExpression(expression: string | null | undefined, item: string): string | undefined;
export declare function validateValue(elem: Feature | UsageLimit, item: string, valueType?: ValueType | undefined): number | boolean | string | PaymentType[] | undefined;
export declare function validateFeatureType(type: string | null | undefined): FeatureType;
export declare function validateFeatureIntegrationType(integrationType: IntegrationType | null | undefined, featureType: FeatureType): IntegrationType | undefined;
export declare function validateFeatureAutomationType(automationType: AutomationType | null | undefined, featureType: FeatureType): AutomationType | undefined;
export declare function validateUnit(unit: string | null | undefined): string;
export declare function validateUsageLimitType(type: string | null | undefined): UsageLimitType;
export declare function validateLinkedFeatures(linkedFeatures: string[] | undefined | null, pricing: Pricing): string[] | undefined;
export declare function validateRenderMode(renderMode: string | undefined | null): RenderMode;
export declare function validatePlanFeatures(plan: Plan, planFeatures: Record<string, Feature>): Record<string, Feature>;
export declare function validatePlanUsageLimits(plan: Plan, planUsageLimits: ContainerUsageLimits): ContainerUsageLimits;
export declare function validatePrice(price: number | string | undefined | null, variables?: {
    [key: string]: any;
}): number | string;
export declare function validateAddonFeatures(addon: AddOn, addOnFeatures: Record<string, Feature>): Record<string, Feature>;
export declare function validateAddonUsageLimits(addon: AddOn, addonUsageLimits: ContainerUsageLimits): ContainerUsageLimits;
export declare function validateAddonUsageLimitsExtensions(addon: AddOn, addonUsageLimits: ContainerUsageLimits): ContainerUsageLimits;
export declare function validateAvailableFor(availableFor: string[] | undefined | null, pricing: Pricing): string[];
export declare function validateDependsOnOrExcludes(fieldValue: string[] | undefined | null, pricing: Pricing, fieldType: 'dependsOn' | 'excludes'): string[];
export declare function postValidateDependsOnOrExclude(fieldValue: string[] | undefined, pricing: Pricing): void;
export declare function validateTags(tags: string[] | undefined): string[];
export declare function validatePlan(plan: Plan): void;
export declare function validatePlans(plans: object): void;
export declare function validateFeatures(features: object): void;
export declare function validateFeature(feature: Feature): void;
export declare function validateUsageLimits(usageLimits: object): void;
export declare function validateUsageLimit(usageLimit: UsageLimit): void;
export declare function validateBilling(billing: {
    [key: string]: number;
} | undefined): {
    [key: string]: number;
};
export declare function validateVariables(variables: {
    [key: string]: any;
} | undefined): {
    [key: string]: any;
};
export declare function validateUrl(url: string | undefined): string | undefined;
export declare function validatePrivate(isPrivate: boolean | undefined): boolean;
export declare function validatePricingUrls(featureType: FeatureType, featureIntegrationType: IntegrationType | undefined, pricingUrls: string[] | undefined): string[] | undefined;
export declare function validateDocUrl(featureType: FeatureType, docUrl: string | undefined): string | undefined;
export declare function validatePeriodUnit(periodUnit: string | undefined): "SEC" | "MIN" | "HOUR" | "DAY" | "MONTH" | "YEAR";
export declare function validatePeriodValue(periodValue: number | undefined): number;
export declare function validateTrackable(trackable: boolean | undefined): boolean;
export declare function validateSubscriptionConstraintMinQuantity(subscriptionConstraintMinQuantity: number | undefined): number;
export declare function validateSubscriptionConstraintMaxQuantity(subscriptionConstraintMaxQuantity: number | undefined, minQuantity: number): number;
export declare function validateSubscriptionConstraintQuantityStep(subscriptionConstraintQuantityStep: number | undefined, minQuantity: number): number;
export declare function validateCustom(custom: {
    [key: string]: any;
} | undefined): {
    [key: string]: any;
};
