import { HttpClient } from '@angular/common/http';
import { ChangeDetectorRef, EventEmitter, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
import { AuthService } from '@igo2/auth';
import { ConfigService } from '@igo2/core/config';
import { Subscription } from 'rxjs';
import { Context, ContextPermission, ContextPermissionsList, ContextProfils } from '../shared/context.interface';
import * as i0 from "@angular/core";
export declare class ContextPermissionsComponent implements OnInit {
    private formBuilder;
    private cd;
    private http;
    authService: AuthService;
    private config;
    form: UntypedFormGroup;
    get context(): Context;
    set context(value: Context);
    private _context;
    get permissions(): ContextPermissionsList;
    set permissions(value: ContextPermissionsList);
    private _permissions;
    get profils(): ContextProfils[];
    set profils(value: ContextProfils[]);
    private _profils;
    get canWrite(): boolean;
    private baseUrlProfils;
    formControl: UntypedFormControl;
    formValueChanges$$: Subscription;
    addPermission: EventEmitter<ContextPermission>;
    removePermission: EventEmitter<ContextPermission>;
    scopeChanged: EventEmitter<Context>;
    constructor(formBuilder: UntypedFormBuilder, cd: ChangeDetectorRef, http: HttpClient, authService: AuthService, config: ConfigService);
    ngOnInit(): void;
    displayFn(profil?: ContextProfils): string | undefined;
    handleFormSubmit(value: any): void;
    private buildForm;
    onProfilSelected(value: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContextPermissionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContextPermissionsComponent, "igo-context-permissions", never, { "context": { "alias": "context"; "required": false; }; "permissions": { "alias": "permissions"; "required": false; }; }, { "addPermission": "addPermission"; "removePermission": "removePermission"; "scopeChanged": "scopeChanged"; }, never, never, true, never>;
}
