import { PublicKey, Transaction, TransactionInstruction } from "@solana/web3.js";
import { ListingState, Listing as ListingType } from "../types/listing";
import ProgramLoader from "./ProgramLoader";
import { BidInfo, BidReceipt as BidReceiptType } from "../types/bid-receipt";
export default class Listing {
    protected readonly programLoader: ProgramLoader;
    private auctionManagerProgram;
    constructor(programLoader: ProgramLoader);
    create(nft: PublicKey, tokenMint: PublicKey, tokenMintProgramId: PublicKey, lister: PublicKey, timeExtension: number, startingPrice: number, period?: number): Promise<TransactionInstruction[]>;
    createTransaction(nft: PublicKey, tokenMint: PublicKey, tokenMintProgramId: PublicKey, lister: PublicKey, timeExtension: number, startingPrice: number, period?: number): Promise<Transaction>;
    get(listingPubkey: PublicKey): Promise<ListingType>;
    fetchMany(listingPubkeys: PublicKey[]): Promise<ListingType[]>;
    getAll(): Promise<ListingType[]>;
    cancel(listingPubkey: PublicKey): Promise<Transaction>;
    getBids(listingPubkey: PublicKey): Promise<BidReceiptType[]>;
    getByState(state: ListingState): Promise<ListingType[]>;
    getOneTimeSales(): Promise<ListingType[]>;
    getAuctions(): Promise<ListingType[]>;
    getHighestBidInfo(listingPubkey: PublicKey): Promise<BidInfo>;
    getBidsInfoToRefund(listingPubkey: PublicKey): Promise<BidInfo[]>;
}
