import { InsertEvent, UpdateEvent, EntitySubscriberInterface, UpdateResult } from 'typeorm';
import Profile from "../entities/profile.js";
import UserEntity from "../entities/user.js";
declare class User implements EntitySubscriberInterface<UserEntity> {
    /**
     * This subscriber only for User entity
     */
    /**
     * This subscriber only for User entity
     */
    listenTo(): typeof UserEntity;
    /**
     * 1. Create profile when we create new user
     * 2. Generate username
     */
    /**
     * 1. Create profile when we create new user
     * 2. Generate username
     */
    afterInsert({ entity, manager, }: InsertEvent<UserEntity>): Promise<[UpdateResult, Profile]>;
    /**
     * Also soft delete or restore user profile
     * @inheritDoc
     */
    /**
     * Also soft delete or restore user profile
     * @inheritDoc
     */
    afterUpdate(event: UpdateEvent<UserEntity>): Promise<void>;
    /**
     * Detect if user is soft removed
     * @private
     */
    /**
     * Detect if user is soft removed
     * @private
     */
    static isSoftRemoved({ entity, databaseEntity }: UpdateEvent<UserEntity>): boolean;
    /**
     * Detect if user is restored
     * @private
     */
    /**
     * Detect if user is restored
     * @private
     */
    static isRecovered({ entity, databaseEntity }: UpdateEvent<UserEntity>): boolean;
}
export { User as default };
