export * from "./utils";
import { IClientAssetMapping } from "../../../core/entities/crux-domain";
import { DomainRegistrationStatus, INameServiceConfigurationOverrides } from "../../../core/entities/crux-domain";
import { ICruxBlockstackInfrastructure } from "../../../core/interfaces";
import { IKeyManager } from "../../../core/interfaces/key-manager";
import { StorageService } from "../../../packages/storage";
export interface ICruxOnBoardingClientOptions {
    cacheStorage?: StorageService;
    configKey?: string | IKeyManager;
    domain?: string;
    blockstackInfrastructure?: ICruxBlockstackInfrastructure;
}
export declare class CruxOnBoardingClient {
    private cacheStorage?;
    private cruxBlockstackInfrastructure;
    private initPromise;
    private cruxDomainRepository;
    private configKeyManager?;
    private cruxDomain?;
    private domainContext?;
    constructor(options: ICruxOnBoardingClientOptions);
    domain: string;
    isCruxDomainAvailable: (domain: string) => Promise<boolean>;
    registerCruxDomain: (domain: string) => Promise<void>;
    getCruxDomainState: () => Promise<DomainRegistrationStatus>;
    getNameServiceConfig: () => Promise<INameServiceConfigurationOverrides | undefined>;
    getAssetMapping: () => Promise<IClientAssetMapping>;
    getSupportedAssetGroups: () => Promise<string[]>;
    putNameServiceConfig: (newNameServiceConfig: INameServiceConfigurationOverrides) => Promise<void>;
    putAssetMapping: (newAssetMapping: IClientAssetMapping) => Promise<void>;
    putSupportedAssetGroups: (newSupportedAssetGroups: string[]) => Promise<void>;
    private init;
    private getCruxDomain;
    private getConfigKeyManager;
    private restoreCruxDomain;
}
