import { CruxId } from "../../packages/identity-utils"; import { CruxDomain } from "../entities/crux-domain"; import { CruxUser } from "../entities/crux-user"; import { IKeyManager } from "./key-manager"; export interface ICruxUserRepository { isCruxIdAvailable: (cruxIDSubdomain: string) => Promise; create: (cruxIDSubdomain: string, keyManager: IKeyManager) => Promise; getByCruxId: (cruxID: CruxId, tag?: string, onlyRegistered?: boolean) => Promise; getWithKey: (keyManager: IKeyManager) => Promise; save: (cruxUser: CruxUser, keyManager: IKeyManager) => Promise; } export interface ICruxUserRepositoryOptions { cruxDomain?: CruxDomain; } export declare type ICruxUserRepositoryConstructor = new (options?: ICruxUserRepositoryOptions) => ICruxUserRepository;