import { ChatUser } from '../../types';
import { MagnetarInstance } from '@magnetarjs/core';
import { FirebaseStorage } from '@firebase/storage';
/**
 * ChatUserのデータベースモジュール作成用関数
 */
export declare const dbChatUserFactoryModule: (magnetar: MagnetarInstance, updatedBy: string, uid?: string) => import("@magnetarjs/types").CollectionInstance<ChatUser, {
    insert: ChatUser;
}>;
/**
 * 新規ユーザー登録
 * ※avatarImgがある場合は、storageインスタンスが必要です。
 * TODO:FirebaseStoragePropsで使用する場合はインスタンスとして使用できないので、修正する。
 * @param {MagnetarInstance} magnetar - Magnetarインスタンス
 * @param {Object} user - ユーザー情報オブジェクト
 * @param {string} user.id - ユーザーID
 * @param {string} user.name - ユーザー名
 * @param {'admin' | 'editor' | 'readonly'} [user.permission='editor'] - 権限 (デフォルトは 'editor')
 * @param {Object.<string, boolean | undefined>} [user.notificationSetting={}] - 通知設定 (デフォルトは空オブジェクト)
 * @param {FirebaseStorage} [user.avatar.storage] - アバター画像のストレージインスタンス
 * @param {File} [user.avatar.file] - アバター画像ファイル
 * @returns {Promise<void>}
 */
export declare const insertChatUser: (magnetar: MagnetarInstance, user: {
    id: string;
    name: string;
    permission?: "admin" | "editor" | "readonly" | undefined;
    notificationSetting?: {
        [key: string]: boolean | undefined;
    } | undefined;
    avatar?: {
        storage: FirebaseStorage;
        file: File;
    } | undefined;
}, updatedBy: string) => Promise<void>;
