import { AuthenticationManagementBase } from './AuthenticationManagementBase';
import type { AuthenticationManagementData, AuthenticationManagementServiceOptions, DataCheckUniqueWithAction, DataIdentityChangeWithAction, DataOptions, DataPasswordChangeWithAction, DataResendVerifySignupWithAction, DataResetPwdLongWithAction, DataResetPwdShortWithAction, DataSendResetPwdWithAction, DataVerifySignupLongWithAction, DataVerifySignupSetPasswordLongWithAction, DataVerifySignupSetPasswordShortWithAction, DataVerifySignupShortWithAction, SanitizedUser, DataCheckUnique, DataIdentityChange, DataPasswordChange, DataResendVerifySignup, DataResetPwdLong, DataResetPwdShort, DataSendResetPwd, DataVerifySignupLong, DataVerifySignupSetPasswordLong, DataVerifySignupSetPasswordShort, DataVerifySignupShort } from '../types';
import type { Application, Params } from '@feathersjs/feathers';
type AllResultTypes = null | SanitizedUser | AuthenticationManagementServiceOptions | unknown;
export declare class AuthenticationManagementService extends AuthenticationManagementBase<AuthenticationManagementData, AllResultTypes, AuthenticationManagementServiceOptions> {
    constructor(app: Application, options?: Partial<AuthenticationManagementServiceOptions>);
    _checkUnique(data: DataCheckUnique, params?: Params): Promise<unknown>;
    checkUnique(data: DataCheckUnique, params?: Params): Promise<unknown>;
    _identityChange(data: DataIdentityChange, params?: Params): Promise<SanitizedUser>;
    identityChange(data: DataIdentityChange, params?: Params): Promise<SanitizedUser>;
    _passwordChange(data: DataPasswordChange, params?: Params): Promise<SanitizedUser>;
    passwordChange(data: DataPasswordChange, params?: Params): Promise<SanitizedUser>;
    _resendVerifySignup(data: DataResendVerifySignup, params?: Params): Promise<SanitizedUser>;
    resendVerifySignup(data: DataResendVerifySignup, params?: Params): Promise<SanitizedUser>;
    _resetPasswordLong(data: DataResetPwdLong, params?: Params): Promise<SanitizedUser>;
    resetPasswordLong(data: DataResetPwdLong, params?: Params): Promise<SanitizedUser>;
    _resetPasswordShort(data: DataResetPwdShort, params?: Params): Promise<SanitizedUser>;
    resetPasswordShort(data: DataResetPwdShort, params?: Params): Promise<SanitizedUser>;
    _sendResetPassword(data: DataSendResetPwd, params?: Params): Promise<SanitizedUser>;
    sendResetPassword(data: DataSendResetPwd, params?: Params): Promise<SanitizedUser>;
    _verifySignupLong(data: DataVerifySignupLong, params?: Params): Promise<SanitizedUser>;
    verifySignupLong(data: DataVerifySignupLong, params?: Params): Promise<SanitizedUser>;
    _verifySignupShort(data: DataVerifySignupShort, params?: Params): Promise<SanitizedUser>;
    verifySignupShort(data: DataVerifySignupShort, params?: Params): Promise<SanitizedUser>;
    _verifySignupSetPasswordLong(data: DataVerifySignupSetPasswordLong, params?: Params): Promise<SanitizedUser>;
    verifySignupSetPasswordLong(data: DataVerifySignupSetPasswordLong, params?: Params): Promise<SanitizedUser>;
    _verifySignupSetPasswordShort(data: DataVerifySignupSetPasswordShort, params?: Params): Promise<SanitizedUser>;
    verifySignupSetPasswordShort(data: DataVerifySignupSetPasswordShort, params?: Params): Promise<SanitizedUser>;
    /**
     * check props are unique in the users items.
     * @param data.action action is 'checkUnique'
     * @param data.value {IdentifyUser} the user with properties, e.g. {email, username}. Props with null or undefined are ignored.
     * @param data.ownId excludes your current user from the search
     * @param data.meta.noErrMsg if return an error.message if not unique
     */
    _create(data: DataCheckUniqueWithAction, params?: Params): Promise<null>;
    /**
     * change communications
     * @param action action is 'identityChange'
     * @param value { changes, password, user }
     * @param notifierOptions
     */
    _create(data: DataIdentityChangeWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * change password
     * @param action action is 'passwordChange'
     * @param value { oldPassword, password, user }
     * @param notifierOptions
     */
    _create(data: DataPasswordChangeWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * resend sign up verification notification
     * @param action action is 'resendVerifySignup'
     * @param value {IdentifyUser} the user with properties, e.g. {email}, {token: verifyToken}
     * @param notifierOptions options passed to options.notifier
     */
    _create(data: DataResendVerifySignupWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * forgotten password verification with long token
     * @param action action is 'resetPwdLong'
     * @param value { password, token, user }
     * @param notifierOptions
     */
    _create(data: DataResetPwdLongWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * forgotten password verification with short token
     * @param action action is 'resetPwdShort'
     * @param value { password, token, user }
     * @param notifierOptions
     */
    _create(data: DataResetPwdShortWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * send forgotten password notification
     * @param action action is 'sendResetPwd'
     * @param value { password, token }
     * @param notifierOptions
     */
    _create(data: DataSendResetPwdWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * sign up or identityChange verification with long token
     * @param action action is 'verifySignupLong'
     * @param value // compares to user.verifyToken
     * @param notifierOptions options passed to options.notifier
     */
    _create(data: DataVerifySignupLongWithAction): Promise<SanitizedUser>;
    /**
     * sign up or identityChange verification with short token
     * @param action action is 'verifySignupShort'
     * @param value { token, user }
     * @param notifierOptions
     */
    _create(data: DataVerifySignupShortWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * sign up verification and set password  with long token
     * @param action action is 'verifySignupSetPasswordLong'
     * @param value { password, token }
     * @param notifierOptions
     */
    _create(data: DataVerifySignupSetPasswordLongWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * sign up verification and set password with short token
     * @param action action is 'verifySignupSetPasswordShort'
     * @param value { password, token, user }
     * @param notifierOptions
     */
    _create(data: DataVerifySignupSetPasswordShortWithAction, params?: Params): Promise<SanitizedUser>;
    /**
     * get options for AuthenticationManagement
     * @param action action is 'options'
     */
    _create(data: DataOptions, params?: Params): Promise<AuthenticationManagementServiceOptions>;
}
export {};
