import { IFailedAuthenticationResult } from "./i-failed-authentication-result.interface";
import { ISuccessfulAuthenticationResult } from "./i-successful-authentication-result.interface";
/**
 * Provides authentication and credentials management related functionality.
 *
 * @deprecated Use @studyportals/client-internal-platform-sso
 */
interface IAuthenticationServicesProvider {
    /**
     * Carries out the necessary operations to authenticate a user
     * using the provided credentials.
     *
     * @param userIdentifier	The unique identifier of the user.
     * @param secret			The secret to be provided by the user to validate its identity.
     */
    authenticate(userIdentifier: string, secret: string): Promise<ISuccessfulAuthenticationResult | IFailedAuthenticationResult>;
    /**
     * Carries out the necessary operations to register a new user
     * using the provided credentials.
     *
     * @param userIdentifier	The unique identifier of the user.
     * @param secret			The secret to be provided by the user to validate its identity.
     */
    registerUser(userIdentifier: string, secret: string): Promise<void>;
    /**
     * Carries out the necessary operations to change the password of
     * the specified user.
     *
     * @param userIdentifier	The unique identifier of the user.
     * @param oldSecret			The secret to be provided by the user to validate its identity.
     * @param newSecret			The new secret that will be provided by the user to validate its identity in the future.
     */
    changePassword(userIdentifier: string, oldSecret: string, newSecret: string): Promise<void>;
}
export { IAuthenticationServicesProvider };
