export declare const PaidWorkspacePlans: {
    readonly Team: "team";
    readonly TeamUnlimited: "teamUnlimited";
    readonly Pro: "pro";
    readonly ProUnlimited: "proUnlimited";
};
export type PaidWorkspacePlans = (typeof PaidWorkspacePlans)[keyof typeof PaidWorkspacePlans];
export declare const UnpaidWorkspacePlans: {
    readonly TeamUnlimitedInvoiced: "teamUnlimitedInvoiced";
    readonly ProUnlimitedInvoiced: "proUnlimitedInvoiced";
    readonly Enterprise: "enterprise";
    readonly Unlimited: "unlimited";
    readonly Academia: "academia";
    readonly Free: "free";
};
export type UnpaidWorkspacePlans = (typeof UnpaidWorkspacePlans)[keyof typeof UnpaidWorkspacePlans];
export declare const WorkspacePlans: {
    readonly TeamUnlimitedInvoiced: "teamUnlimitedInvoiced";
    readonly ProUnlimitedInvoiced: "proUnlimitedInvoiced";
    readonly Enterprise: "enterprise";
    readonly Unlimited: "unlimited";
    readonly Academia: "academia";
    readonly Free: "free";
    readonly Team: "team";
    readonly TeamUnlimited: "teamUnlimited";
    readonly Pro: "pro";
    readonly ProUnlimited: "proUnlimited";
};
export type WorkspacePlans = (typeof WorkspacePlans)[keyof typeof WorkspacePlans];
export declare const doesPlanIncludeUnlimitedProjectsAddon: (plan: WorkspacePlans) => boolean;
export declare const isSelfServeAvailablePlan: (plan: WorkspacePlans) => boolean;
export declare const isPaidPlan: (plan: WorkspacePlans) => boolean;
/**
 * BILLING INTERVALS
 */
export declare const WorkspacePlanBillingIntervals: {
    readonly Monthly: "monthly";
    readonly Yearly: "yearly";
};
export type WorkspacePlanBillingIntervals = (typeof WorkspacePlanBillingIntervals)[keyof typeof WorkspacePlanBillingIntervals];
/**
 * PLAN STATUSES
 */
export declare const UnpaidWorkspacePlanStatuses: {
    readonly Valid: "valid";
};
export type UnpaidWorkspacePlanStatuses = (typeof UnpaidWorkspacePlanStatuses)[keyof typeof UnpaidWorkspacePlanStatuses];
export declare const PaidWorkspacePlanStatuses: {
    readonly PaymentFailed: "paymentFailed";
    readonly CancelationScheduled: "cancelationScheduled";
    readonly Canceled: "canceled";
    readonly Valid: "valid";
};
export type PaidWorkspacePlanStatuses = (typeof PaidWorkspacePlanStatuses)[keyof typeof PaidWorkspacePlanStatuses];
export declare const WorkspacePlanStatuses: {
    readonly Valid: "valid";
    readonly PaymentFailed: "paymentFailed";
    readonly CancelationScheduled: "cancelationScheduled";
    readonly Canceled: "canceled";
};
export type WorkspacePlanStatuses = (typeof WorkspacePlanStatuses)[keyof typeof WorkspacePlanStatuses];
type BaseWorkspacePlan = {
    workspaceId: string;
    createdAt: Date;
    updatedAt: Date;
    featureFlags: number;
};
export type PaidWorkspacePlan = BaseWorkspacePlan & {
    name: PaidWorkspacePlans;
    status: PaidWorkspacePlanStatuses;
};
export type UnpaidWorkspacePlan = BaseWorkspacePlan & {
    name: UnpaidWorkspacePlans;
    status: UnpaidWorkspacePlanStatuses;
};
export type WorkspacePlan = PaidWorkspacePlan | UnpaidWorkspacePlan;
export declare const isWorkspacePlanStatusReadOnly: (status: WorkspacePlan["status"]) => boolean;
export {};
//# sourceMappingURL=plans.d.ts.map