import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import { UmbRepositoryBase } from '../../../core/repository/index.js';
import { UMB_NOTIFICATION_CONTEXT } from '../../../core/notification/index.js';
/**
 * A repository for the current user
 * @class UmbCurrentUserRepository
 * @augments {UmbRepositoryBase}
 */
export declare class UmbCurrentUserRepository extends UmbRepositoryBase {
    #private;
    protected notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE;
    constructor(host: UmbControllerHost);
    /**
     * Request the current user
     * @returns {*}
     * @memberof UmbCurrentUserRepository
     */
    requestCurrentUser(): Promise<{
        data: import("../types.js").UmbCurrentUserModel | undefined;
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError | undefined;
        asObservable: () => import("rxjs").Observable<import("../types.js").UmbCurrentUserModel | undefined>;
    }>;
    /**
     * Request the current user's external login providers
     * @memberof UmbCurrentUserRepository
     */
    requestExternalLoginProviders(): Promise<{
        data: import("../../../core/backend-api/index.js").UserExternalLoginProviderModel[];
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError | undefined;
        asObservable: () => import("rxjs").Observable<import("../../../core/backend-api/index.js").UserExternalLoginProviderModel[]>;
    }>;
    /**
     * Request the current user's available MFA login providers
     * @memberof UmbCurrentUserRepository
     */
    requestMfaLoginProviders(): Promise<{
        data: import("../../../core/backend-api/index.js").UserTwoFactorProviderModel[] | undefined;
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError | undefined;
        asObservable: () => import("rxjs").Observable<import("../../../core/backend-api/index.js").UserTwoFactorProviderModel[]>;
    }>;
    /**
     * Enable an MFA provider
     * @param provider The provider to enable
     * @param providerName
     * @param code The activation code of the provider to enable
     * @param secret
     * @memberof UmbCurrentUserRepository
     */
    enableMfaProvider(providerName: string, code: string, secret: string): Promise<{
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError;
    } | {
        error?: undefined;
    }>;
    /**
     * Disable an MFA provider
     * @param provider The provider to disable
     * @param providerName
     * @param code The activation code of the provider to disable
     * @memberof UmbCurrentUserRepository
     */
    disableMfaProvider(providerName: string, code: string): Promise<{
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError;
    } | {
        error?: undefined;
    }>;
    /**
     * Change password for current user
     * @param userId
     * @param newPassword
     * @param oldPassword
     * @param isCurrentUser
     * @returns
     */
    changePassword(newPassword: string, oldPassword: string): Promise<{
        data: unknown;
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError | undefined;
    }>;
}
export default UmbCurrentUserRepository;
