import { CommandBus } from '../../../core/command/CommandBus';
import { InitializationData, NetworkData } from '../../out/TransactionAdapter';
import ConnectRequest, { SupportedWallets } from '../request/network/ConnectRequest';
import TransactionService from '../../../app/service/transaction/TransactionService';
import NetworkService from '../../../app/service/network/NetworkService';
import SetNetworkRequest from '../request/network/SetNetworkRequest';
import { Environment } from '../../../domain/context/network/Environment';
import InitializationRequest from '../request/network/InitializationRequest';
import SetConfigurationRequest from '../request/management/SetConfigurationRequest';
import { MirrorNode } from '../../../domain/context/network/MirrorNode';
import { JsonRpcRelay } from '../../../domain/context/network/JsonRpcRelay';
export { InitializationData, NetworkData, SupportedWallets };
export type NetworkResponse = {
    environment: Environment;
    mirrorNode: MirrorNode;
    rpcNode: JsonRpcRelay;
    consensusNodes: string;
};
export type ConfigResponse = {
    factoryAddress: string;
    resolverAddress: string;
};
interface INetworkInPort {
    connect(req: ConnectRequest): Promise<InitializationData>;
    disconnect(): Promise<boolean>;
    setNetwork(req: SetNetworkRequest): Promise<NetworkResponse>;
    setConfig(req: SetConfigurationRequest): Promise<ConfigResponse>;
    getFactoryAddress(): string;
    getResolverAddress(): string;
    getNetwork(): string;
    isNetworkRecognized(): boolean;
}
declare class NetworkInPort implements INetworkInPort {
    private readonly commandBus;
    private readonly transactionService;
    private readonly networkService;
    constructor(commandBus?: CommandBus, transactionService?: TransactionService, networkService?: NetworkService);
    setConfig(req: SetConfigurationRequest): Promise<ConfigResponse>;
    getFactoryAddress(): string;
    getResolverAddress(): string;
    getNetwork(): string;
    isNetworkRecognized(): boolean;
    setNetwork(req: SetNetworkRequest): Promise<NetworkResponse>;
    init(req: InitializationRequest): Promise<SupportedWallets[]>;
    connect(req: ConnectRequest): Promise<InitializationData>;
    private getCustodialSettings;
    disconnect(): Promise<boolean>;
}
declare const Network: NetworkInPort;
export default Network;
