import { PlanType } from "../data/types";
import { SupabaseTeam } from "../supabase-client/supabase-types";
export declare function getStripePriceIdForPlan(plan: PlanType.Pro | PlanType.Team): string;
export declare function getPlanForStripePriceId(stripePriceId: string): PlanType;
interface BasePlan {
    numberOfProjects: number;
    numberOfPages: number;
    numberOfTeamMembers: number;
    limits: PlanLimits;
}
interface FreePlan extends BasePlan {
    plan: PlanType.Free;
    state: "free";
    canCreatePage: boolean;
    canCreateProject: false;
}
interface ProPlan extends BasePlan {
    plan: PlanType.Pro;
    state: "paid";
    canCreatePage: true;
    canCreateProject: true;
}
interface TeamPlan extends BasePlan {
    plan: PlanType.Team;
    state: "paid";
    canCreatePage: true;
    canCreateProject: true;
}
interface CustomPlan extends BasePlan {
    plan: PlanType.Custom;
    state: "paid";
    canCreatePage: true;
    canCreateProject: true;
}
export type PricingPlan = FreePlan | ProPlan | TeamPlan | CustomPlan;
export type ResourceType = "page" | "project" | "member";
export type PlanLimits = {
    [key in ResourceType]: number;
};
export declare const FREE_PLAN_RESOURCE_LIMIT: PlanLimits;
export declare const PRO_PLAN_RESOURCE_LIMIT: PlanLimits;
export declare const CUSTOM_PLAN_RESOURCE_LIMIT: PlanLimits;
export declare function getPricingPlan(team: SupabaseTeam | null, { pageCount, projectCount, teamMemberCount }: {
    pageCount: number;
    projectCount: number;
    teamMemberCount: number;
}): PricingPlan;
export {};
//# sourceMappingURL=pricing-helpers.d.ts.map