import { Account, NetworkType, PublicAccount } from 'symbol-sdk';
import { Addresses, ConfigAccount, ConfigPreset, CustomPreset, NodeAccount, NodePreset, PrivateKeySecurityMode } from '../model';
import { Migration, Password } from './BootstrapUtils';
import { KeyName, Preset } from './ConfigService';
export declare class ConfigLoader {
    private static presetInfoLogged;
    generateRandomConfiguration(oldAddresses: Addresses | undefined, presetData: ConfigPreset): Promise<Addresses>;
    generateAddresses(networkType: NetworkType, privateKeySecurityMode: PrivateKeySecurityMode, size: number): ConfigAccount[];
    getAccount(networkType: NetworkType, publicKey: string | undefined, privateKey: string | undefined): PublicAccount | Account | undefined;
    toConfig(account: PublicAccount | Account): ConfigAccount;
    generateAccount(networkType: NetworkType, privateKeySecurityMode: PrivateKeySecurityMode, keyName: KeyName, oldStoredAccount: ConfigAccount | undefined, privateKey: string | undefined, publicKey: string | undefined): ConfigAccount;
    generateNodeAccount(oldNodeAccount: NodeAccount | undefined, presetData: ConfigPreset, index: number, nodePreset: NodePreset, networkType: NetworkType): NodeAccount;
    generateNodeAccounts(oldAddresses: Addresses | undefined, presetData: ConfigPreset, networkType: NetworkType): Promise<NodeAccount[]>;
    private static getArray;
    private loadCustomPreset;
    private loadAssembly;
    createPresetData(params: {
        password: string | undefined;
        root: string;
        preset?: Preset;
        assembly?: string;
        customPreset?: string;
        customPresetObject?: CustomPreset;
        oldPresetData?: ConfigPreset;
    }): ConfigPreset;
    dynamicDefaultNodeConfiguration(nodes?: NodePreset[]): NodePreset[];
    private getDefaultConfiguration;
    static resolveRoles(nodePreset: NodePreset): string;
    static toConfig(account: Account | PublicAccount): ConfigAccount;
    expandRepeat(presetData: ConfigPreset): ConfigPreset;
    applyValueTemplate(context: any, value: any): any;
    expandServicesRepeat(context: any, services: any[]): any[];
    loadExistingPresetDataIfPreset(target: string, password: Password): ConfigPreset | undefined;
    loadExistingPresetData(target: string, password: Password): ConfigPreset;
    loadExistingAddressesIfPreset(target: string, password: Password): Addresses | undefined;
    migrateAddresses(addresses: any, networkType: NetworkType): Addresses;
    getAddressesMigration(networkType: NetworkType): Migration[];
    loadExistingAddresses(target: string, password: Password): Addresses;
    getGeneratedPresetLocation(target: string): string;
    getGeneratedAddressLocation(target: string): string;
}
