import { type TeamBilling, type TeamBillingInput } from "./team-billing";
export declare class InternalTeamBilling implements TeamBilling {
    private _team;
    constructor(team: TeamBillingInput);
    set team(team: TeamBillingInput);
    get team(): typeof this._team;
    private getOrgIfNeeded;
    private logErrorFromUnknown;
    cancel(): Promise<void>;
    publish(): Promise<{
        redirectUrl: string;
        status: "REQUIRES_UPGRADE";
    } | {
        redirectUrl: string;
        status: "REQUIRES_PAYMENT";
    } | {
        status: "SUCCESS";
        redirectUrl: null;
    }>;
    downgrade(): Promise<void>;
    updateQuantity(): Promise<void>;
    /** Used to prevent double charges for the same team */
    checkIfTeamPaymentRequired(): Promise<{
        url: null;
        paymentId: null;
        paymentRequired: boolean;
    } | {
        url: null;
        paymentId: string;
        paymentRequired: boolean;
    } | {
        url: string;
        paymentId: string;
        paymentRequired: boolean;
    }>;
    /** Returns the subscription status (active, past_due, trialing, ...) */
    getSubscriptionStatus(): Promise<import("stripe").Stripe.Subscription.Status | null>;
}
//# sourceMappingURL=internal-team-billing.d.ts.map