import { IApplication, ApplicationService, TenantService, TenantOptionsService } from '@c8y/client';
import { HumanizeAppNamePipe } from '@c8y/ngx-components';
import { DefaultSubscriptions } from './default-subscriptions.model';
import * as i0 from "@angular/core";
export declare class DefaultSubscriptionsService {
    private applicationService;
    private tenantService;
    private tenantOptionsService;
    private humanizeAppNamePipe;
    constructor(applicationService: ApplicationService, tenantService: TenantService, tenantOptionsService: TenantOptionsService, humanizeAppNamePipe: HumanizeAppNamePipe);
    /**
     * Gets the list of applications which can be used in default subscriptions, i.e.:
     * - current tenant's all own applications,
     * - inherited applications, which do not have the same names as current tenant's own apps.
     * The list is sorted alphabetically by humanized app name and contains up to 2000 items.
     * @returns The list of applications, which can be used in default subscriptions.
     */
    getSubscribableTenantApps(): Promise<IApplication[]>;
    /**
     * Gets the default subscriptions configuration inherited from parent tenant.
     * @returns The default subscriptions object with settings from parent tenant.
     */
    getDefaultSubscriptionsEvaluatedFromParentTenant(): Promise<DefaultSubscriptions>;
    /**
     * Gets the default subscriptions configuration from the current tenant.
     * @returns The default subscriptions object with settings from the current tenant.
     */
    getDefaultSubscriptionsFromCurrentTenant(): Promise<DefaultSubscriptions>;
    /**
     * Saves given default subscriptions configuration to the current tenant
     * (either sets, updates, or deletes corresponding tenant options).
     * @param defaultSubscriptions The default subscriptions configuration to be saved.
     */
    saveDefaultSubscriptionsToCurrentTenant(defaultSubscriptions: DefaultSubscriptions): Promise<void>;
    /**
     * Gets default subscriptions in the context of current or parent tenant.
     * @param contextTenant Tells whether to use current or parent tenant as context.
     */
    private getDefaultSubscriptions;
    private getTenantOptions;
    private saveOnCreationSubscriptions;
    private saveOnUpgradeSubscriptions;
    private getTenantOption;
    private setTenantOption;
    private unsetTenantOption;
    private namesToPartialApps;
    private partialAppsListToAppsNames;
    private partialAppsToMicroservicesNames;
    static ɵfac: i0.ɵɵFactoryDeclaration<DefaultSubscriptionsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DefaultSubscriptionsService>;
}
//# sourceMappingURL=default-subscriptions.service.d.ts.map