import { EntityManager, Repository } from "typeorm"; import { BaseService, SysSettingsService, SysSuiteSetting } from "@certd/lib-server"; import { ProductEntity, SuiteContent, UserSuiteEntity } from "../entity/index.js"; import { ProductService } from "./product-service.js"; export type ProductToUserSuiteProps = { duration: number; userId: number; product: ProductEntity; tradeId?: number; entityManager?: EntityManager; isPresent?: boolean; isBootstrap?: boolean; }; export type IUsedCountService = { getUsedCount(userId: number): Promise; }; export type UserSuiteSimple = { id: number; productId: number; title: string; expiresTime: number; duration: number; productType: string; deployCountUsed?: number; isEmpty?: boolean; }; /** */ export declare class UserSuiteService extends BaseService { repository: Repository; myCountService: IUsedCountService; sysSettingsService: SysSettingsService; productService: ProductService; getRepository(): Repository; presentGiftSuite(userId: number): Promise; productToUserSuite(req: ProductToUserSuiteProps): Promise; getMySuiteDetail(useId: number): Promise<{ enabled: boolean; suites: UserSuiteSimple[]; expiresTime: number; pipelineCount: { max: number; used: number; }; domainCount: { max: number; used: number; }; wildcardDomainCount: { max: number; used: number; }; deployCount: { max: number; used: number; }; monitorCount: { max: number; used: number; }; }>; getMyValidSuiteList(userId: number): Promise; private getMyLatestValidSuiteList; private getMyValidSuites; private getMyValidAddons; checkHasDeployCount(userId: number, count?: number): Promise; consumeDeployCount(suite: UserSuiteEntity, count: number): Promise; checkHasInfinite(content: SuiteContent): boolean; getSuiteSetting(): Promise; isOnlyDeployCount(content: SuiteContent): boolean; presentSuite(req: { userId: number; productId: number; duration: number; }): Promise; }