import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AddPhoneNumberViewModel } from '../model/addPhoneNumberViewModel';
import { AppIdentityUser } from '../model/appIdentityUser';
import { AuthenticationResult } from '../model/authenticationResult';
import { ChangePasswordRequest } from '../model/changePasswordRequest';
import { SetPasswordViewModel } from '../model/setPasswordViewModel';
import { VerifyPhoneNumberViewModel } from '../model/verifyPhoneNumberViewModel';
import { Configuration } from '../configuration';
import { ManageUsersServiceInterface } from './manageUsers.serviceInterface';
import * as i0 from "@angular/core";
export declare class ManageUsersService implements ManageUsersServiceInterface {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * @param Username
     * @param ExpiresInHours
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    activateRemoteAccountCredentialReset(Username?: string, ExpiresInHours?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    activateRemoteAccountCredentialReset(Username?: string, ExpiresInHours?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    activateRemoteAccountCredentialReset(Username?: string, ExpiresInHours?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param AddPhoneNumberViewModel
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    addPhoneNumber(UserName?: string, AddPhoneNumberViewModel?: AddPhoneNumberViewModel, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    addPhoneNumber(UserName?: string, AddPhoneNumberViewModel?: AddPhoneNumberViewModel, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    addPhoneNumber(UserName?: string, AddPhoneNumberViewModel?: AddPhoneNumberViewModel, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param ChangePasswordRequest
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    changePassword(UserName?: string, ChangePasswordRequest?: ChangePasswordRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    changePassword(UserName?: string, ChangePasswordRequest?: ChangePasswordRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    changePassword(UserName?: string, ChangePasswordRequest?: ChangePasswordRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param Username
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    deactivateRemoteAccountCredentialReset(Username?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    deactivateRemoteAccountCredentialReset(Username?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    deactivateRemoteAccountCredentialReset(Username?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param email
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    deleteUserByEmail(email?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    deleteUserByEmail(email?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    deleteUserByEmail(email?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param username
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    deleteUserByUsername(username?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    deleteUserByUsername(username?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    deleteUserByUsername(username?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    disableTwoFactorAuthentication(UserName?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    disableTwoFactorAuthentication(UserName?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    disableTwoFactorAuthentication(UserName?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    enableTwoFactorAuthentication(UserName?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    enableTwoFactorAuthentication(UserName?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    enableTwoFactorAuthentication(UserName?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param sNameLast
     * @param sNameFirst
     * @param ContentMatch
     * @param CaseMatch
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    findUser(sNameLast?: string, sNameFirst?: string, ContentMatch?: boolean, CaseMatch?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<AppIdentityUser>>;
    findUser(sNameLast?: string, sNameFirst?: string, ContentMatch?: boolean, CaseMatch?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<AppIdentityUser>>>;
    findUser(sNameLast?: string, sNameFirst?: string, ContentMatch?: boolean, CaseMatch?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<AppIdentityUser>>>;
    /**
     * @param UserName
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUserByUserNameAync(UserName?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AppIdentityUser>;
    getUserByUserNameAync(UserName?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AppIdentityUser>>;
    getUserByUserNameAync(UserName?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AppIdentityUser>>;
    /**
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsers(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<AppIdentityUser>>;
    getUsers(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<AppIdentityUser>>>;
    getUsers(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<AppIdentityUser>>>;
    /**
     * @param SearchKey
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsersByEmailAsync(SearchKey?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AppIdentityUser>;
    getUsersByEmailAsync(SearchKey?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AppIdentityUser>>;
    getUsersByEmailAsync(SearchKey?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AppIdentityUser>>;
    /**
     * @param SearchKey
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsersByUserIDAsync(SearchKey?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AppIdentityUser>;
    getUsersByUserIDAsync(SearchKey?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AppIdentityUser>>;
    getUsersByUserIDAsync(SearchKey?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AppIdentityUser>>;
    /**
     * @param SearchKey
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsersByUserNameAsync(SearchKey?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AppIdentityUser>;
    getUsersByUserNameAsync(SearchKey?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AppIdentityUser>>;
    getUsersByUserNameAsync(SearchKey?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AppIdentityUser>>;
    /**
     * @param Filter
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsersFiltered(Filter?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<AppIdentityUser>>;
    getUsersFiltered(Filter?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<AppIdentityUser>>>;
    getUsersFiltered(Filter?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<AppIdentityUser>>>;
    /**
     * @param PageSize
     * @param PageIndex
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsersPaged(PageSize?: number, PageIndex?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<AppIdentityUser>>;
    getUsersPaged(PageSize?: number, PageIndex?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<AppIdentityUser>>>;
    getUsersPaged(PageSize?: number, PageIndex?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<AppIdentityUser>>>;
    /**
     * @param ItemsPerPage
     * @param PageIndex
     * @param Filter
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getUsersPagedFiltered(ItemsPerPage?: number, PageIndex?: number, Filter?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<AppIdentityUser>>;
    getUsersPagedFiltered(ItemsPerPage?: number, PageIndex?: number, Filter?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<AppIdentityUser>>>;
    getUsersPagedFiltered(ItemsPerPage?: number, PageIndex?: number, Filter?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<AppIdentityUser>>>;
    /**
     * @param UserName
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    removePhoneNumber(UserName?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    removePhoneNumber(UserName?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    removePhoneNumber(UserName?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param phoneNumber
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    sendPhoneNumberVerification(UserName?: string, phoneNumber?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    sendPhoneNumberVerification(UserName?: string, phoneNumber?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    sendPhoneNumberVerification(UserName?: string, phoneNumber?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param SetPasswordViewModel
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    setPassword(UserName?: string, SetPasswordViewModel?: SetPasswordViewModel, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    setPassword(UserName?: string, SetPasswordViewModel?: SetPasswordViewModel, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    setPassword(UserName?: string, SetPasswordViewModel?: SetPasswordViewModel, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param AppIdentityUser
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    updateAccount(AppIdentityUser?: AppIdentityUser, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    updateAccount(AppIdentityUser?: AppIdentityUser, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    updateAccount(AppIdentityUser?: AppIdentityUser, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    /**
     * @param UserName
     * @param VerifyPhoneNumberViewModel
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    verifyPhoneNumber(UserName?: string, VerifyPhoneNumberViewModel?: VerifyPhoneNumberViewModel, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<AuthenticationResult>;
    verifyPhoneNumber(UserName?: string, VerifyPhoneNumberViewModel?: VerifyPhoneNumberViewModel, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<AuthenticationResult>>;
    verifyPhoneNumber(UserName?: string, VerifyPhoneNumberViewModel?: VerifyPhoneNumberViewModel, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<AuthenticationResult>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ManageUsersService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ManageUsersService>;
}
