import { Environment } from '../../../../domain/context/network/Environment';
import { MirrorNode } from '../../../../domain/context/network/MirrorNode';
import { JsonRpcRelay } from '../../../../domain/context/network/JsonRpcRelay';
import { SupportedWallets } from '../../../../domain/context/network/Wallet';
import { BaseRequest, RequestAccount } from '../BaseRequest';
import ValidatedRequest from '../../../../core/validation/ValidatedArgs';
export { SupportedWallets };
export interface DFNSConfigRequest {
    authorizationToken: string;
    credentialId: string;
    serviceAccountPrivateKey: string;
    urlApplicationOrigin: string;
    applicationId: string;
    baseUrl: string;
    walletId: string;
    hederaAccountId: string;
    publicKey: string;
}
export interface FireblocksConfigRequest {
    apiSecretKey: string;
    apiKey: string;
    baseUrl: string;
    vaultAccountId: string;
    assetId: string;
    hederaAccountId: string;
}
export interface AWSKMSConfigRequest {
    awsAccessKeyId: string;
    awsSecretAccessKey: string;
    awsRegion: string;
    awsKmsKeyId: string;
    hederaAccountId: string;
}
export type CustodialSettings = DFNSConfigRequest | FireblocksConfigRequest | AWSKMSConfigRequest;
export type HWCRequestSettings = {
    projectId: string;
    dappName: string;
    dappDescription: string;
    dappURL: string;
    dappIcons: string[];
};
export default class ConnectRequest extends ValidatedRequest<ConnectRequest> implements BaseRequest {
    account?: RequestAccount;
    network: Environment;
    mirrorNode: MirrorNode;
    rpcNode: JsonRpcRelay;
    wallet: SupportedWallets;
    hwcSettings?: HWCRequestSettings;
    debug?: boolean;
    custodialWalletSettings?: CustodialSettings;
    constructor({ account, network, mirrorNode, rpcNode, wallet, hwcSettings, debug, custodialWalletSettings, }: {
        account?: RequestAccount;
        network: Environment;
        mirrorNode: MirrorNode;
        rpcNode: JsonRpcRelay;
        wallet: SupportedWallets;
        hwcSettings?: HWCRequestSettings;
        debug?: boolean;
        custodialWalletSettings?: CustodialSettings;
    });
    [key: string]: any;
}
