import { EventEmitter } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { User } from 'oidc-client';
import { MobicloudConfigService } from "./mobicloud-config.service";
import { MobiUserProfile } from "../types/mobi-user-profile";
import { ApplicationDetails, ProfileDetails, EmployeeSecurityRoleType } from "../types/application-details";
import { Country } from "../types/country";
import * as i0 from "@angular/core";
export declare class MobicloudCoreService {
    protected httpClient: HttpClient;
    configService: MobicloudConfigService;
    _appVersion: string;
    _appName: string;
    _appTitle: string;
    require_Organization: boolean;
    require_Customer: boolean;
    require_Vendor: boolean;
    private manager;
    user: import("@angular/core").WritableSignal<User | null>;
    mobiUserProfile: import("@angular/core").WritableSignal<MobiUserProfile | undefined>;
    applicationDetails: import("@angular/core").WritableSignal<ApplicationDetails | undefined>;
    profileDetails: import("@angular/core").WritableSignal<ProfileDetails | undefined>;
    countries: import("@angular/core").WritableSignal<Map<string, Country> | undefined>;
    UserChanged: EventEmitter<{
        user: User | undefined | null;
        profile: MobiUserProfile | undefined;
        profileDetails: ProfileDetails | undefined;
    }>;
    constructor(httpClient: HttpClient, configService: MobicloudConfigService);
    usermanager_UserLoaded(_user: User): void;
    usermanager_UserUnloaded(): void;
    protected onUserChanged(): Promise<void>;
    getApplicationDetails(requestTimeout?: number): Promise<ApplicationDetails | undefined>;
    getCountries(): Promise<Map<string, Country>>;
    getProfileDetails(requestTimeout?: number): Promise<ProfileDetails | undefined>;
    signIn(redirectUrl: string): Promise<any>;
    completeSignIn(): Promise<User | null>;
    signInSilent(): Promise<any>;
    onSignedInSilent(_user: User): void;
    completeSilentSignIn(): Promise<any>;
    signout(): Promise<any>;
    completeSignout(): Promise<void>;
    enableOidcLogEvents(): void;
    isAuthenticated(): boolean;
    isOrganizationAuthenticated(): boolean | undefined;
    isMasterOrganizationAuthenticated(): boolean | undefined;
    isOrganizationUserAuthenticated(): boolean | undefined;
    isMasterOrganizationUserAuthenticated(): boolean | undefined;
    isMasterOrganizationAdminAuthenticated(): boolean | undefined;
    isEmployeeAuthenticated(): boolean | undefined;
    isEmployeeMasterUserAuthenticated(): boolean | undefined;
    isMasterEmployeeAuthenticated(): boolean | undefined;
    isCustomerUserAuthenticated(): boolean | undefined;
    isMasterCustomerUserAuthenticated(): boolean | undefined;
    isVendorUserAuthenticated(): boolean | undefined;
    isMasterVendorUserAuthenticated(): boolean | undefined;
    isB2BAuthenticated(): boolean | undefined;
    isMasterB2BAuthenticated(): boolean | undefined;
    isMasterUserAuthenticated(): boolean | undefined;
    isMasterAdminAuthenticated(): boolean | undefined;
    securityRole(): EmployeeSecurityRoleType | undefined;
    hasMasterOrganization(): boolean;
    getMasterOrganization(): string | null;
    setMasterOrganization(strMasterOrganizationId: string | null): Promise<void>;
    removeMasterOrganization(): void;
    hasMasterCustomer(): boolean;
    getMasterCustomer(): string | null;
    setMasterCustomer(strMasterCustomerId: string | null): void;
    removeMasterCustomer(): void;
    hasMasterVendor(): boolean;
    getMasterVendor(): string | null;
    setMasterVendor(strMasterVendorId: string | null): void;
    removeMasterVendor(): void;
    redirectUrl(): string;
    get accessToken(): string;
    get authorizationHeader(): string | undefined;
    get tokenExpiresAt(): Date | undefined;
    get tokenValidUntil(): Date | undefined;
    get isTokenExpired(): boolean;
    handleError(error: any): Error;
    SecurityRolePriorityMap: Record<EmployeeSecurityRoleType, number>;
    requireEmployeePermission(mobiUserProfile: MobiUserProfile, callback?: ((valid: boolean) => void) | undefined, securityRole?: EmployeeSecurityRoleType): boolean;
    requireOrganizationUser(mobiUserProfile: MobiUserProfile, callback?: ((valid: boolean) => void) | undefined): boolean;
    requireOrganizationAdmin(mobiUserProfile: MobiUserProfile, callback?: ((valid: boolean) => void) | undefined): boolean;
    requireMasterPermission(mobiUserProfile: MobiUserProfile, callback?: ((valid: boolean) => void) | undefined): boolean;
    requireMasterAdminPermission(mobiUserProfile: MobiUserProfile, callback?: ((valid: boolean) => void) | undefined): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MobicloudCoreService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MobicloudCoreService>;
}
export declare function evaluateForMasterOrganizationClearance(errorMessage: string): boolean;
//# sourceMappingURL=mobicloud-core.service.d.ts.map