import { Observable } from 'rxjs';
import { Entity, EntityReference, OptionSetValue, Entities, XrmContextService } from './xrmcontext.service';
import * as i0 from "@angular/core";
export declare class Role extends Entity {
    constructor();
    businessunitid: EntityReference;
    name: string;
    parentroleid: EntityReference;
    parentrootroleid: EntityReference;
    meta(): Role;
}
export declare class Team extends Entity {
    constructor();
    description: string;
    emailaddress: string;
    name: string;
    teamtype: OptionSetValue;
    meta(): Team;
}
export declare class SystemUser extends Entity {
    constructor();
    address1_name: string;
    address2_name: string;
    domainname: string;
    firstname: string;
    fullname: string;
    lastname: string;
    middlename: string;
    nickname: string;
    systemuserroles_association: Entities<Role>;
    teammembership_association: Entities<Team>;
    hasRole(name: string): boolean;
    memberOf(name: string): boolean;
    roles: Role[];
    teams: Team[];
    onFetch(): void;
    meta(): SystemUser;
}
export declare class XrmSecurityService {
    private xrmService;
    private rolePrototype;
    private teamPrototype;
    private userPrototype;
    constructor(xrmService: XrmContextService);
    getUser(id: string): Observable<SystemUser>;
    getCurrentUser(): Observable<SystemUser>;
    static ɵfac: i0.ɵɵFactoryDeclaration<XrmSecurityService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<XrmSecurityService>;
}
