import { EventEmitter, SimpleChanges } from '@angular/core';
import { SsoConfigurationMapper } from './sso-configuration.mapper';
import { SsoConfiguration } from '../sso-configuration.model';
import { Observable, Subscription } from 'rxjs';
import { IApplication, IIdentified, IUserGroup } from '@c8y/client';
import * as i0 from "@angular/core";
export declare abstract class TemplateComponent<T> {
    protected configurationMapper: SsoConfigurationMapper<T>;
    templateModel: T;
    apps: IApplication[];
    groups: IUserGroup[];
    inventoryRoles: IIdentified[];
    ssoConfiguration: SsoConfiguration;
    ssoConfigurationChangeTrigger: Observable<void>;
    ssoConfigurationChange: EventEmitter<SsoConfiguration>;
    triggerSubscription: Subscription;
    protected constructor(configurationMapper: SsoConfigurationMapper<T>);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private mapSsoConfiguration;
    private emitSsoConfiguration;
    static ɵfac: i0.ɵɵFactoryDeclaration<TemplateComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TemplateComponent<any>, "ng-component", never, { "apps": { "alias": "apps"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "inventoryRoles": { "alias": "inventoryRoles"; "required": false; }; "ssoConfiguration": { "alias": "ssoConfiguration"; "required": false; }; "ssoConfigurationChangeTrigger": { "alias": "ssoConfigurationChangeTrigger"; "required": false; }; }, { "ssoConfigurationChange": "ssoConfigurationChange"; }, never, never, false, never>;
}
//# sourceMappingURL=template.component.d.ts.map