/**
 * Configuration for JWT generation
 */
export interface JWTConfig {
    method?: string;
    host?: string;
    path?: string;
    expiresIn?: number;
}
/**
 * Address configuration for session tokens
 */
export interface AddressConfig {
    address: string;
    blockchains: string[];
}
/**
 * Session token request parameters
 */
export interface SessionTokenParams {
    addresses: AddressConfig[];
    assets?: string[];
}
/**
 * Onramp URL generation parameters
 */
export interface OnrampUrlParams {
    addresses: AddressConfig[];
    assets?: string[];
    defaultAsset?: string;
    defaultNetwork?: string;
    presetFiatAmount?: number;
    presetCryptoAmount?: number;
    redirectUrl?: string;
    partnerUserId?: string;
}
/**
 * Generate a JSON Web Token (JWT) for CDP API authentication.
 * Uses the CDP SDK to handle all key formats automatically.
 *
 * @param config - JWT configuration options
 * @returns Promise<string> - The generated JWT token
 *
 * @example
 * ```typescript
 * const jwt = await generateJWT({
 *   method: 'POST',
 *   path: '/onramp/v1/token'
 * });
 * ```
 */
export declare function generateJWT(config?: JWTConfig): Promise<string>;
/**
 * Create a session token for initializing the onramp widget.
 * Session tokens are single-use and expire after 5 minutes.
 *
 * @param jwt - The JWT token for authentication
 * @param params - Session token parameters
 * @returns Promise<string> - The session token
 *
 * @example
 * ```typescript
 * const jwt = await generateJWT();
 * const sessionToken = await createSessionToken(jwt, {
 *   addresses: [{
 *     address: '0x1234...5678',
 *     blockchains: ['base', 'ethereum']
 *   }],
 *   assets: ['USDC', 'ETH']
 * });
 * ```
 */
export declare function createSessionToken(jwt: string, params: SessionTokenParams): Promise<string>;
/**
 * Generate a complete onramp URL with session token and parameters.
 * This is a convenience function that combines JWT generation, session token creation, and URL building.
 *
 * @param params - Onramp URL parameters
 * @returns Promise<string> - The complete onramp URL
 *
 * @example
 * ```typescript
 * const onrampUrl = await generateOnrampUrl({
 *   addresses: [{
 *     address: '0x1234...5678',
 *     blockchains: ['base']
 *   }],
 *   defaultAsset: 'USDC',
 *   presetFiatAmount: 50
 * });
 * ```
 */
export declare function generateOnrampUrl(params: OnrampUrlParams): Promise<string>;
/**
 * Guest checkout limits as defined by Coinbase
 */
export declare const GUEST_CHECKOUT_LIMITS: {
    readonly minimumAmount: 5;
    readonly weeklyLimit: 500;
    readonly country: "US";
};
/**
 * Supported blockchain networks
 */
export declare const SUPPORTED_NETWORKS: {
    readonly BASE: "base";
    readonly ETHEREUM: "ethereum";
    readonly ARBITRUM: "arbitrum";
    readonly OPTIMISM: "optimism";
    readonly POLYGON: "polygon";
};
/**
 * Common asset symbols
 */
export declare const SUPPORTED_ASSETS: {
    readonly ETHEREUM: "ETH";
    readonly USD_COIN: "USDC";
    readonly BITCOIN: "BTC";
    readonly TETHER: "USDT";
    readonly DAI: "DAI";
};
/**
 * Validate wallet address format
 */
export declare function isValidEthereumAddress(address: string): boolean;
/**
 * Validate amount within guest checkout limits
 */
export declare function validateGuestCheckoutAmount(amount: number): {
    isValid: boolean;
    error?: string;
};
