import { flags } from '@oclif/command';
import { AccountInfo, ChainInfo, Deadline, PublicAccount, RepositoryFactory, Transaction, UInt64 } from 'symbol-sdk';
import { Addresses, ConfigPreset, NodeAccount, NodePreset } from '../model';
export interface TransactionFactoryParams {
    presetData: ConfigPreset;
    nodePreset: NodePreset;
    nodeAccount: NodeAccount;
    mainAccountInfo: AccountInfo;
    mainAccount: PublicAccount;
    deadline: Deadline;
    maxFee: UInt64;
}
export interface TransactionFactory {
    createTransactions(params: TransactionFactoryParams): Promise<Transaction[]>;
}
export interface RepositoryInfo {
    repositoryFactory: RepositoryFactory;
    restGatewayUrl: string;
    generationHash?: string;
    chainInfo?: ChainInfo;
}
export declare class AnnounceService {
    private static onProcessListener;
    static flags: {
        password: flags.IOptionFlag<string | undefined>;
        noPassword: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
        url: flags.IOptionFlag<string>;
        useKnownRestGateways: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
        ready: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
        maxFee: import("@oclif/parser/lib/flags").IOptionFlag<number | undefined>;
    };
    announce(providedUrl: string, providedMaxFee: number | undefined, useKnownRestGateways: boolean, ready: boolean | undefined, presetData: ConfigPreset, addresses: Addresses, transactionFactory: TransactionFactory, tokenAmount?: string): Promise<void>;
    private promptAccounts;
    static isValidPrivateKey(input: string): boolean | string;
    private getAccountInfo;
    private getMultisigAccount;
    private getKnownNodeRepositoryInfos;
    private sortByHeight;
    private getBestCosigner;
    private isAccountEmpty;
}
