import { LoggerService } from '@sowatech/shared/logger'; import { SharedSession } from '@sowatech/shared/session'; import * as i0 from '@angular/core'; import { OnInit, ElementRef } from '@angular/core'; import * as i5 from '@angular/common'; import * as i6 from '@angular/forms'; declare class RoleGroup { roles: string[]; constructor(roles: string | string[]); } declare class AccessForRoleService { private session; private logger; constructor(session: SharedSession, logger: LoggerService); sessionHasRole(roleGroups: RoleGroup[]): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare abstract class AccessForRoleComponent { session: SharedSession; protected logger: LoggerService; protected accessForRoleService: AccessForRoleService; set _roles(value: string | string[] | string[][]); get sessionHasRole(): boolean; private roleGroups; constructor(session: SharedSession, logger: LoggerService, accessForRoleService: AccessForRoleService); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class RestrictEditToRolesComponent extends AccessForRoleComponent { set _editableRoles(value: string | string[] | string[][]); get canEdit(): boolean; constructor(session: SharedSession, logger: LoggerService, accessForRolesService: AccessForRoleService); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class VisibleForRoleComponent extends AccessForRoleComponent { set _visibleRoles(value: string | string[] | string[][]); get isVisible(): boolean; constructor(session: SharedSession, logger: LoggerService, accessForRolesService: AccessForRoleService); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare abstract class AccessForRoleDirective implements OnInit { protected session: SharedSession; protected logger: LoggerService; protected accessForRoleService: AccessForRoleService; set _roles(value: string | string[] | string[][]); protected roleGroups: RoleGroup[]; protected abstract class: string; private nativeElement; constructor(el: ElementRef, session: SharedSession, logger: LoggerService, accessForRoleService: AccessForRoleService); ngOnInit(): void; private get sessionHasRole(); private removeClass; private addClass; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class RestrictEditToRolesDirective extends AccessForRoleDirective implements OnInit { protected class: string; set _editableForRoles(value: string | string[] | string[][]); constructor(el: ElementRef, session: SharedSession, logger: LoggerService, accessForRoleService: AccessForRoleService); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class VisibleForRoleDirective extends AccessForRoleDirective implements OnInit { set _visibleForRoles(value: string | string[] | string[][]); constructor(el: ElementRef, session: SharedSession, logger: LoggerService, accessForRoleService: AccessForRoleService); ngOnInit(): void; protected class: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class AccessForRoleModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { AccessForRoleModule, AccessForRoleService, RestrictEditToRolesComponent, RestrictEditToRolesDirective, RoleGroup, VisibleForRoleComponent, VisibleForRoleDirective };