import { Team } from '../../../../../kysely/types.ts';
import { SubscriptionStatus, IBillingRepositoryCreateArgs } from '../../repository/billing/IBillingRepository';
export type TeamBillingInput = Pick<Team, "id" | "parentId" | "metadata" | "isOrganization">;
export declare const TeamBillingPublishResponseStatus: {
    readonly REQUIRES_PAYMENT: "REQUIRES_PAYMENT";
    readonly REQUIRES_UPGRADE: "REQUIRES_UPGRADE";
    readonly SUCCESS: "SUCCESS";
};
export type TeamBillingPublishResponse = {
    redirectUrl: string | null;
    status: (typeof TeamBillingPublishResponseStatus)[keyof typeof TeamBillingPublishResponseStatus];
};
export interface ITeamBillingService {
    cancel(): Promise<void>;
    publish(): Promise<TeamBillingPublishResponse>;
    downgrade(): Promise<void>;
    updateQuantity(): Promise<void>;
    getSubscriptionStatus(): Promise<SubscriptionStatus | null>;
    endTrial(): Promise<boolean>;
    saveTeamBilling(args: IBillingRepositoryCreateArgs): Promise<void>;
}
//# sourceMappingURL=ITeamBillingService.d.ts.map