import { PrivyEvmWalletProvider, PrivyEvmWalletConfig } from "./privyEvmWalletProvider";
import { PrivySvmWalletProvider, PrivySvmWalletConfig } from "./privySvmWalletProvider";
import { PrivyEvmDelegatedEmbeddedWalletProvider, PrivyEvmDelegatedEmbeddedWalletConfig } from "./privyEvmDelegatedEmbeddedWalletProvider";
type PrivyWalletConfig = (PrivyEvmWalletConfig | PrivySvmWalletConfig | PrivyEvmDelegatedEmbeddedWalletConfig) & {
    chainType?: "ethereum" | "solana";
    walletType?: "server" | "embedded";
};
export type PrivyWalletProviderVariant<T> = T extends {
    walletType: "embedded";
} ? PrivyEvmDelegatedEmbeddedWalletProvider : T extends {
    chainType: "solana";
} ? PrivySvmWalletProvider : PrivyEvmWalletProvider;
/**
 * Factory class for creating chain-specific Privy wallet providers
 */
export declare class PrivyWalletProvider {
    /**
     * Creates and configures a new wallet provider instance based on the chain type and wallet type.
     *
     * @param config - The configuration options for the Privy wallet
     * @returns A configured WalletProvider instance for the specified chain and wallet type
     *
     * @example
     * ```typescript
     * // For EVM server wallets (default)
     * const evmWallet = await PrivyWalletProvider.configureWithWallet({
     *   appId: "your-app-id",
     *   appSecret: "your-app-secret"
     * });
     *
     * // For Solana server wallets
     * const solanaWallet = await PrivyWalletProvider.configureWithWallet({
     *   appId: "your-app-id",
     *   appSecret: "your-app-secret",
     *   chainType: "solana"
     * });
     *
     * // For Ethereum embedded wallets
     * const embeddedWallet = await PrivyWalletProvider.configureWithWallet({
     *   appId: "your-app-id",
     *   appSecret: "your-app-secret",
     *   walletId: "delegated-wallet-id",
     *   walletType: "embedded"
     * });
     * ```
     */
    static configureWithWallet<T extends PrivyWalletConfig>(config: T): Promise<PrivyWalletProviderVariant<T>>;
}
export {};
