import type { UmbCurrentUserModel } from '../types.js';
import { UmbControllerBase } from '../../../../libs/class-api/index.js';
/**
 * A data source for the current user that fetches data from the server
 * @class UmbCurrentUserServerDataSource
 */
export declare class UmbCurrentUserServerDataSource extends UmbControllerBase {
    #private;
    /**
     * Get the current user
     * @returns {*}
     * @memberof UmbCurrentUserServerDataSource
     */
    getCurrentUser(): Promise<{
        data: UmbCurrentUserModel;
        error?: undefined;
    } | {
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError | undefined;
        data?: undefined;
    }>;
    /**
     * Get the current user's external login providers
     * @memberof UmbCurrentUserServerDataSource
     */
    getExternalLoginProviders(): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: import("../../../core/backend-api/index.js").UserExternalLoginProviderModel[];
        request: Request;
        response: Response;
    }>>;
    /**
     * Get the current user's available MFA login providers
     * @memberof UmbCurrentUserServerDataSource
     */
    getMfaLoginProviders(): Promise<{
        data: import("../../../core/backend-api/index.js").UserTwoFactorProviderModel[];
        error?: undefined;
    } | {
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError | undefined;
        data?: undefined;
    }>;
    /**
     * Enable an MFA provider
     * @param providerName
     * @param code
     * @param secret
     */
    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 providerName
     * @param code
     */
    disableMfaProvider(providerName: string, code: string): Promise<{
        error: import("../../../core/resources/index.js").UmbApiError | import("../../../core/resources/index.js").UmbCancelError;
    } | {
        error?: undefined;
    }>;
    /**
     * Change the password for current user
     * @param id
     * @param newPassword
     * @param oldPassword
     * @param isCurrentUser
     * @returns
     */
    changePassword(newPassword: string, oldPassword: string): Promise<import("../../../core/resources/index.js").UmbApiResponse<{
        data: unknown;
        request: Request;
        response: Response;
    }>>;
}
