///
import { StatsigService } from './statsig-service';
import { URL } from 'url';
import { ProductDisplayName } from '../shared';
export declare type SupportedProduct = 'Jira' | 'Confluence' | 'Compass' | 'Teamwork Graph' | 'Atlas' | 'Bitbucket';
declare type ProductType = 'sited' | 'workspace';
export declare type ProductDefinition = {
name: SupportedProduct;
productType: ProductType;
special?: {
supportedByCrossProductApps?: boolean;
isEnabledByFeatureGate?: (statsigService: StatsigService) => Promise;
};
};
declare class SupportedProductEntry {
productName: SupportedProduct;
productType: ProductType;
supportedByCrossProductApps: boolean;
constructor(productName: SupportedProduct, productType: ProductType, supportedByCrossProductApps: boolean);
}
declare function resolveEnabledProducts(statsigService: StatsigService): Promise;
export declare class SupportedProductsService {
private supportedProductEntriesHolder;
constructor(supportedProductEntries?: SupportedProductEntry[]);
initializeWithSupportedProducts(statsigService: StatsigService): Promise;
private getFilteredSupportedProducts;
getSupportedProducts(): SupportedProduct[];
getSupportedSecondaryProductsForXPA(requiredProducts: string[]): SupportedProduct[];
validateSupportedProduct(productNameInput: string): SupportedProduct;
isWorkspaceProduct(product: string): boolean;
validateSite(site: string, product: ProductDisplayName | undefined): URL;
}
export declare const isBitbucketProduct: (product: string) => boolean;
export declare const TEST_ONLY_EXPORTS: {
resolveEnabledProducts: typeof resolveEnabledProducts;
};
export {};
//# sourceMappingURL=supported-products-service.d.ts.map