import { Logger } from '../logger';
import { Addresses, ConfigPreset, CustomPreset } from '../model';
import { Password } from './BootstrapUtils';
/**
 * Defined presets.
 */
export declare enum Preset {
    bootstrap = "bootstrap",
    testnet = "testnet",
    mainnet = "mainnet"
}
export declare enum Assembly {
    api = "api",
    demo = "demo",
    dual = "dual",
    multinode = "multinode",
    peer = "peer"
}
export declare const defaultAssembly: Record<string, string>;
export declare enum KeyName {
    Main = "Main",
    Remote = "Remote",
    Transport = "Transport",
    Voting = "Voting",
    VRF = "VRF",
    NemesisSigner = "Nemesis Signer",
    NemesisAccount = "Nemesis Account",
    ServiceProvider = "Service Provider"
}
export interface ConfigParams {
    report: boolean;
    reset: boolean;
    upgrade: boolean;
    workingDir: string;
    offline?: boolean;
    preset?: string;
    target: string;
    password?: string;
    user: string;
    assembly?: string;
    customPreset?: string;
    customPresetObject?: CustomPreset;
}
export interface ConfigResult {
    addresses: Addresses;
    presetData: ConfigPreset;
}
export declare class ConfigService {
    private readonly logger;
    private readonly params;
    static defaultParams: ConfigParams;
    private readonly configLoader;
    constructor(logger: Logger, params: ConfigParams);
    resolveConfigPreset(password: Password): ConfigPreset;
    run(): Promise<ConfigResult>;
    private resolveCurrentPresetData;
    private copyNemesis;
    private validateSeedFolder;
    private resolveNemesis;
    private generateNodes;
    private generateNodeCertificates;
    private generateNodeConfiguration;
    private generateP2PFile;
    private generateNemesisConfig;
    private createVrfTransaction;
    private createAccountKeyLinkTransaction;
    private createVotingKeyTransactions;
    private storeTransaction;
    private generateGateways;
    private resolveCurrencyName;
    private generateExplorers;
    private generateWallets;
    private resolveRests;
    private cleanUpConfiguration;
}
