import { Connection, PublicKey } from "@solana/web3.js";
import { PresaleInfo, UserInfo } from "./types";
import type { BuyTokenFormData, PreSaleFormData, WithdrawTokenFormData, StartPresaleFormData, DepositTokenFormData } from "./types";
export declare class PresaleClient {
    private connection;
    private program;
    private wallet;
    constructor(connection: Connection, wallet: {
        publicKey: PublicKey;
        signTransaction: any;
        sendTransaction: any;
    }, programId: PublicKey);
    fetchPresaleInfo(): Promise<{
        presaleInfo: PresaleInfo;
        presaleInfoAddress: PublicKey;
    }>;
    fetchUserInfo(userPublicKey: PublicKey): Promise<UserInfo>;
    startPresale(data: StartPresaleFormData): Promise<string>;
    createPresale(data: PreSaleFormData): Promise<string>;
    updatePresale(data: PreSaleFormData): Promise<string>;
    buyToken(data: BuyTokenFormData): Promise<string>;
    depositToken(data: DepositTokenFormData, presaleInfo: PresaleInfo): Promise<string>;
    withdrawTokens(data: WithdrawTokenFormData, presaleInfo: PresaleInfo): Promise<string>;
    claimTokens(presaleInfo: PresaleInfo): Promise<string>;
    withdrawSOL(): Promise<string>;
}
