export type CreditProductUseCase = "event_pass" | "appointment_package";
export type CreditProductSource = Readonly<{
    productUseCase: CreditProductUseCase;
}>;
export type EnabledCreditProductModules = Readonly<{
    events: boolean;
    appointments: boolean;
}>;
export type CreditProductLabelStyle = "generic" | "class";
export type DerivedCreditProductLabels = Readonly<{
    heading: "Passes" | "Packages" | "Passes & Packages" | "Class Passes" | "Appointment Packages";
    emptyMessage: string;
}>;
export type CreditProductCreditUnit = Readonly<{
    singular: string;
    plural: string;
    perCreditSuffix: string;
}>;
export declare function getCreditProductTypeLabel(useCase: CreditProductUseCase): string;
export declare function getCreditProductCreditUnit(useCase: CreditProductUseCase): CreditProductCreditUnit;
export declare function getPortalCreditProductCreditNoun(useCase: CreditProductUseCase, count: number): string;
export declare function deriveCreditProductLabels(products: readonly CreditProductSource[], options?: Readonly<{
    modules?: EnabledCreditProductModules | null;
    style?: CreditProductLabelStyle;
}>): DerivedCreditProductLabels;
