import { CruxDomainId } from "../../packages/identity-utils";
import { CruxDomain } from "../entities/crux-domain";
import { IKeyManager } from "./key-manager";
export interface ICruxDomainRepository {
    isCruxDomainIdAvailable: (domainId: CruxDomainId) => Promise<boolean>;
    create: (domainId: CruxDomainId, identityKeyManager: IKeyManager) => Promise<CruxDomain>;
    get: (domainId: CruxDomainId) => Promise<CruxDomain | undefined>;
    save: (cruxDomain: CruxDomain, keyManager: IKeyManager) => Promise<CruxDomain>;
    getWithConfigKeyManager: (keyManager: IKeyManager, domainId?: CruxDomainId) => Promise<CruxDomain | undefined>;
}
export interface ICruxDomainRepositoryOptions {
}
export declare type ICruxDomainRepositoryConstructor = new (options?: ICruxDomainRepositoryOptions) => ICruxDomainRepository;
