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 KeyName {
    Main = "Main",
    Remote = "Remote",
    Transport = "Transport",
    Voting = "Voting",
    VRF = "VRF",
    Agent = "Agent",
    NemesisSigner = "Nemesis Signer",
    NemesisAccount = "Nemesis Account"
}
export interface ConfigParams {
    report: boolean;
    reset: boolean;
    upgrade: boolean;
    offline?: boolean;
    preset?: Preset;
    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 root;
    private readonly params;
    static defaultParams: ConfigParams;
    private readonly configLoader;
    constructor(root: string, params: ConfigParams);
    resolveConfigPreset(password: Password): ConfigPreset;
    run(): Promise<ConfigResult>;
    private resolveCurrentPresetData;
    private copyNemesis;
    private validateSeedFolder;
    private resolveNemesis;
    private generateNodes;
    private generateNodeCertificates;
    private generateAgentCertificates;
    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;
}
