export type ProductFeature = Record<string, {
    enabled?: boolean;
    max?: number;
    errorMessage: string;
    errorReason: string;
}>;
export type SubscriptionProductFeaturesRemoteModel = {
    free: ProductFeature;
    team: ProductFeature;
    company: ProductFeature;
    pro: ProductFeature;
    enterprise: ProductFeature;
};
export type FeaturePermissionResolution = {
    max?: number;
} & ({
    hasPermission: false;
    reason: string;
} | {
    hasPermission: true;
    reason?: never;
});
export declare class SubscriptionProductFeatures {
    free: ProductFeature;
    team: ProductFeature;
    company: ProductFeature;
    pro: ProductFeature;
    enterprise: ProductFeature;
    constructor(model: SubscriptionProductFeaturesRemoteModel);
}
