import { PublicKey, TransactionInstruction } from '@solana/web3.js';
import { BaseAPI } from '../../api/generated/default';
import * as runtime from '../../api/generated/default/runtime';
import { RelayRequest, LaunchCoinRequest, LaunchCoinResponse, FirstBuyQuoteResponse, FirstBuyQuoteRequest, LaunchpadConfigResponse, ClaimFeesRequest, ClaimFeesResponse } from './types';
/**
 * Client for the Solana Relay Plugin on Discovery.
 */
export declare class SolanaRelay extends BaseAPI {
    /**
     * Public key of the currently selected transaction fee payer
     * from the selected Discovery Node.
     */
    private feePayer;
    /**
     * Gets a random fee payer public key from the selected discovery node's
     * Solana relay plugin.
     *
     * Used when relay transactions don't specify a fee payer override.
     */
    getFeePayer(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PublicKey>;
    /**
     * Gets a location instruction to be sent along with a transaction.
     */
    getLocationInstruction(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TransactionInstruction>;
    /**
     * Relays a transaction to the selected discovery node's Solana relay plugin.
     */
    relay(params: RelayRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{
        signature: string;
    }>;
    /**
     * Launches a new artist coin on the launchpad with bonding curve.
     * Gets back two transactions to sign and send from the client:
     * - createPoolTx: Creates the pool and metadata on-chain
     * - firstBuyTx: Makes an initial purchase of the coin
     */
    launchCoin(params: LaunchCoinRequest): Promise<LaunchCoinResponse>;
    /**
     * Confirms pool creation, then creates reward pool and (optionally) executes the first buy.
     * Receives the createPoolTx and firstBuyTx as base64 encoded VersionedTransactions, fully signed.
     * Launches the reward pool for the coin.
     */
    confirmLaunchCoin(params: {
        mintPublicKey: PublicKey;
        configPublicKey: PublicKey;
        createPoolTx: Uint8Array;
        firstBuyTx?: Uint8Array;
    }): Promise<{
        dbcPool: string;
        createSignature: string;
        rewardPoolSignature: string;
        firstBuySignature?: string | undefined;
    }>;
    /**
     * Gets a quote for the first buy transaction on the launchpad.
     * Returns quotes for SOL to AUDIO, SOL to USDC, and the bonding curve quote.
     */
    getFirstBuyQuote(params: FirstBuyQuoteRequest, requestInitOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FirstBuyQuoteResponse>;
    /**
     * Gets launchpad config details such as max input/outut amounts & starting price.
     * These values only change if we decide to change our launchpad coin launch params.
     * We pull them from the server just to avoid having to hardcode values in the UI.
     */
    getLaunchpadConfig(requestInitOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<LaunchpadConfigResponse>;
    /**
     * Claims creator trading fees from a dynamic bonding curve pool.
     */
    claimFees(params: ClaimFeesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ClaimFeesResponse>;
}
