import { Feature } from './feature';
import { UsageLimit } from './usage-limit';
import { Plan } from './plan';
import { AddOn } from './addon';
export interface Pricing {
    saasName: string;
    syntaxVersion: string;
    version: string;
    url?: string;
    createdAt: Date;
    currency: string;
    tags?: string[];
    billing?: {
        [key: string]: number;
    };
    variables: {
        [key: string]: number | string | boolean;
    };
    features: Record<string, Feature>;
    usageLimits?: Record<string, UsageLimit>;
    plans?: Record<string, Plan>;
    addOns?: Record<string, AddOn>;
}
export interface ExtractedPricing extends Omit<Pricing, 'syntaxVersion' | 'createdAt'> {
    syntaxVersion: string;
    createdAt: string | Date;
}
export interface PricingToBeWritten extends Omit<Pricing, 'createdAt' | 'features'> {
    createdAt: string;
    features: Record<string, Feature> | undefined;
}
export declare function generateEmptyPricing(): Pricing;
export declare function generatePricingToBeWritten(): PricingToBeWritten;
