import { IBillingRepository } from '../../repository/billing/IBillingRepository';
import { ITeamBillingDataRepository } from '../../repository/teamBillingData/ITeamBillingDataRepository';
import { IBillingProviderService } from '../billingProvider/IBillingProviderService';
import { ITeamBillingService, TeamBillingInput } from './ITeamBillingService';
export interface ITeamBillingServiceFactoryDeps {
    billingProviderService: IBillingProviderService;
    teamBillingDataRepository: ITeamBillingDataRepository;
    billingRepositoryFactory: (isOrganization: boolean) => IBillingRepository;
    isTeamBillingEnabled: boolean;
}
export declare class TeamBillingServiceFactory {
    private readonly deps;
    constructor(deps: ITeamBillingServiceFactoryDeps);
    /** Initialize a single team billing */
    init(team: TeamBillingInput): ITeamBillingService;
    /** Initialize multiple team billings at once for bulk operations */
    initMany(teams: TeamBillingInput[]): ITeamBillingService[];
    /** Fetch and initialize a single team billing in one go */
    findAndInit(teamId: number): Promise<ITeamBillingService>;
    /** Fetch and initialize multiple team billings in one go */
    findAndInitMany(teamIds: number[]): Promise<ITeamBillingService[]>;
}
//# sourceMappingURL=TeamBillingServiceFactory.d.ts.map