import { OnInit } from '@angular/core';
import { ITenant, TenantService, ITenantPolicy } from '@c8y/client';
import { FormGroup, NgForm } from '@angular/forms';
import { TenantUiService, AlertService, NewPassword, GainsightService } from '@c8y/ngx-components';
import { ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';
import { Ng1TenantPoliciesService } from '@c8y/ngx-components/upgrade/upgraded-services';
import { TranslateService } from '@ngx-translate/core';
import * as i0 from "@angular/core";
export declare class TenantFormComponent implements OnInit {
    tenantPoliciesServiceProvider: Ng1TenantPoliciesService;
    private tenantService;
    private tenantUiService;
    private location;
    private alertService;
    private activatedRoute;
    private translateService;
    private gainsightService;
    passwordForm: NgForm;
    MANAGEMENT_TENANT_NAME: string;
    title: string;
    host: string;
    isTopTenant: boolean;
    isNew: boolean;
    isEnterpriseEditionTenant: boolean;
    tenant: ITenant | null;
    tenantPolicies: Array<ITenantPolicy>;
    tenantPolicyNone: {
        name: any;
    };
    tenantId: string;
    passwordStrengthEnforced: boolean;
    saveInProgress: boolean;
    showPasswordComponent: boolean;
    tenantPolicy: ITenantPolicy;
    fieldKeys: string[];
    tenantForm: FormGroup;
    fieldDefinitions: {
        domain: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        contactName: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        externalReference: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        tenantID: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        companyName: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        contactPhone: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        administratorEmail: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        administratorUsername: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        sendPasswordResetEmail: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        tenantPolicy: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        allowCreateTenants: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
        gainsightEnabled: import("./tenant-form-inputs-definitions").TenantPropertyDefinition;
    };
    initialized: boolean;
    constructor(tenantPoliciesServiceProvider: Ng1TenantPoliciesService, tenantService: TenantService, tenantUiService: TenantUiService, location: Location, alertService: AlertService, activatedRoute: ActivatedRoute, translateService: TranslateService, gainsightService: GainsightService);
    ngOnInit(): Promise<void>;
    onTenantPolicyChange(): Promise<void>;
    setForm(): void;
    getTenantId(): void;
    onSubmit(): Promise<void>;
    onSave(tenant: ITenant, form: FormGroup): void;
    setSaveInProgress(value: boolean): void;
    cancel(): void;
    shouldDisableSave(): boolean;
    onNewPasswordChanged(newPassword: NewPassword): void;
    onCheckboxChange(inputField: any): void;
    private setDisabledState;
    private shouldShowSubtenantCheckbox;
    private removePasswordControl;
    private getTenant;
    private loadTenantPolicies;
    private getHost;
    private checkIfIsEnterpriseEdition;
    private onTenantPolicies;
    private onTenant;
    private generateForm;
    private sendGainsightEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<TenantFormComponent, [{ optional: true; }, null, null, null, null, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TenantFormComponent, "c8y-tenant-form", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=tenant-form.component.d.ts.map