import { PublicKey, Transaction, TransactionInstruction } from "@solana/web3.js";
import ProgramLoader from "./ProgramLoader";
import { BidReceiptState, BidReceipt as BidReceiptType } from "../types/bid-receipt";
export default class BidReceipt {
    protected readonly programLoader: ProgramLoader;
    constructor(programLoader: ProgramLoader);
    private getListingProgram;
    create(listingPubkey: PublicKey, bidder: PublicKey, price: number, tokenMintProgramId: PublicKey): Promise<TransactionInstruction[]>;
    createTransaction(listingPubkey: PublicKey, bidder: PublicKey, price: number, tokenMintProgramId: PublicKey): Promise<Transaction>;
    get(bidReceiptPubkey: PublicKey): Promise<BidReceiptType>;
    fetchMany(bidReceiptPubkeys: PublicKey[]): Promise<BidReceiptType[]>;
    getAll(): Promise<BidReceiptType[]>;
    getByState(state: BidReceiptState): Promise<BidReceiptType[]>;
    getUserBidOnListing(listingPubkey: PublicKey, user: PublicKey): Promise<BidReceiptType | null>;
    cancel(bidReceiptPubkey: PublicKey, bidder: PublicKey, tokenMintProgramId: PublicKey): Promise<Transaction>;
    refund(bidReceiptPubkey: PublicKey, bidder: PublicKey, tokenMintProgramId: PublicKey): Promise<TransactionInstruction>;
    increase(bidReceiptPubkey: PublicKey, bidder: PublicKey, newAmount: number, tokenMintProgramId: PublicKey): Promise<Transaction>;
}
