import { Command, flags } from '@oclif/command';
import { IOptionFlag } from '@oclif/command/lib/flags';
import { Account, NetworkType, PublicAccount } from 'symbol-sdk';
import { PrivateKeySecurityMode } from '../model';
import { KeyName, Preset, RewardProgram } from '../service';
export declare const assemblies: Record<Preset, {
    value: string;
    description: string;
}[]>;
export declare enum HttpsOption {
    Native = "Native",
    Automatic = "Automatic",
    None = "None"
}
export declare enum Network {
    mainnet = "mainnet",
    testnet = "testnet",
    privateNetwork = "privateNetwork"
}
export interface ProvidedAccounts {
    seeded: boolean;
    main: Account;
    remote: Account;
    vrf: Account;
    transport: Account;
    agent?: Account;
}
export declare const networkToPreset: Record<Network, Preset>;
export default class Wizard extends Command {
    static description: string;
    static examples: string[];
    static flags: {
        help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
        target: flags.IOptionFlag<string>;
        password: flags.IOptionFlag<string | undefined>;
        noPassword: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
        network: flags.IOptionFlag<Network | undefined>;
        customPreset: flags.IOptionFlag<string>;
        ready: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
    };
    run(): Promise<void>;
    static execute(root: string, flags: {
        noPassword: boolean;
        skipPull?: boolean;
        target: string;
        password: string | undefined;
        network: Network | undefined;
        customPreset: string;
        ready?: boolean;
    }): Promise<void>;
    static logAccount<T extends Account | PublicAccount | undefined>(account: T, keyName: KeyName, showPrivateKeys: boolean): T;
    private static resolveAllAccounts;
    static resolveAccountFromSelection(networkType: NetworkType, keyName: KeyName, keyDescription: string): Promise<Account>;
    static generateAccount(networkType: NetworkType): Account;
    static resolveAccount(networkType: NetworkType, keyName: KeyName): Promise<Account | undefined>;
    static resolveNetwork(providedNetwork: Network | undefined): Promise<Network>;
    static resolvePrivateKeySecurityMode(): Promise<PrivateKeySecurityMode>;
    static resolveAssembly(preset: Preset): Promise<string>;
    private static isVoting;
    static getNetworkIdFlag(): IOptionFlag<Network | undefined>;
    static getCustomPresetFile(): IOptionFlag<string>;
    static resolveRewardProgram(): Promise<RewardProgram | undefined>;
    static resolveHost(message: string, required: boolean): Promise<string>;
    static resolveRestSSLKeyAsBase64(): Promise<string>;
    static resolveRestSSLCertAsBase64(): Promise<string>;
    static resolveFileContent(encoding: string, message: string, notFoundMessage: string): Promise<string>;
    static isValidHost(input: string): boolean | string;
    static isValidFriendlyName(input: string): boolean | string;
    static resolveFriendlyName(defaultFriendlyName: string): Promise<string>;
    static resolveHttpsOptions(): Promise<HttpsOption>;
}
