import { HolderResponse, PortfolioSummary, PresaleResponse } from './client';
interface ClientConfig {
    publicApiKey: string;
    apiBasePath?: string;
}
/**
 * Client-side SDK for Metal Presales
 * This class only contains methods that work with the public API key
 * and is safe to use in browser environments.
 */
export declare class MetalPresalesClient {
    private publicApiKey;
    private apiBasePath;
    constructor({ publicApiKey, apiBasePath }: ClientConfig);
    /**
     * Public API methods - these work with just the public key
     */
    getHolder(userId: string): Promise<HolderResponse>;
    getHolderWithPortfolio(userId: string): Promise<{
        holder: HolderResponse;
        portfolio: PortfolioSummary;
    }>;
    getPresale(presaleId: string): Promise<PresaleResponse>;
    /**
     * Server-proxied methods - these call your API routes
     */
    createUser(userId: string): Promise<HolderResponse>;
    getActivePresales(): Promise<PresaleResponse[]>;
    buyPresale(userId: string, presaleId: string, usdcAmount: number): Promise<any>;
    buyTokens(userId: string, tokenAddress: string, usdcAmount: number): Promise<any>;
    sellTokens(userId: string, tokenAddress: string, tokenAmount: number): Promise<any>;
    quoteBuyTokens(userId: string, tokenAddress: string, usdcAmount: number): Promise<any>;
    quoteSellTokens(userId: string, tokenAddress: string, tokenAmount: number): Promise<any>;
}
export type { HolderResponse, PortfolioSummary, PresaleResponse } from './client';
//# sourceMappingURL=client-sdk.d.ts.map