import { ConfigService } from '@nestjs/config';
import { KeycloakAdminClient, UserRepresentation } from '@s3pweb/keycloak-admin-client-cjs';
export declare enum KeycloakActionsEmailEnum {
    VERIFY_EMAIL = "VERIFY_EMAIL",
    UPDATE_PROFILE = "UPDATE_PROFILE",
    CONFIGURE_TOTP = "CONFIGURE_TOTP",
    UPDATE_PASSWORD = "UPDATE_PASSWORD",
    TERMS_AND_CONDITIONS = "TERMS_AND_CONDITIONS"
}
export declare class KeycloakAdminService {
    private configService;
    readonly KEYCLOAK_ADMIN_CLIENT_ID: string;
    private readonly KEYCLOAK_ADMIN_CLIENT_SECRET;
    private readonly KEYCLOAK_REALM;
    readonly _client: KeycloakAdminClient;
    constructor(configService: ConfigService);
    private auth;
    getAccessToken(): Promise<string>;
    findAllUsers(): Promise<UserRepresentation[]>;
    findUserByEmail(email: string): Promise<UserRepresentation[]>;
    findUserByUsername(username: string): Promise<UserRepresentation[]>;
    findUserById(id: string): Promise<UserRepresentation | undefined>;
    createUser(email: string, firstName?: string | undefined, lastName?: string | undefined, username?: string | undefined, attributes?: Record<string, unknown>): Promise<UserRepresentation>;
    updateAttributesOfUser(id: string, user: UserRepresentation, attributes: Record<string, unknown>): Promise<void | never>;
    updateUserPassword(userId: string, newPassword: string): Promise<void | never>;
    executeActionsEmail(sub: string, clientId: string | undefined, lifespan: number | undefined, redirectUri: string | undefined, actions: KeycloakActionsEmailEnum[] | undefined): Promise<void | never>;
}
