///
import * as anchor from '@coral-xyz/anchor';
import { AnchorProvider, Program } from '@coral-xyz/anchor';
import { Account } from '@solana/spl-token';
import { ConfirmOptions, Connection, PublicKey, TransactionInstruction, TransactionSignature } from '@solana/web3.js';
import { BN } from '.';
import { IWallet } from './types';
export declare class TokenFaucet {
connection: Connection;
wallet: IWallet;
program: Program;
provider: AnchorProvider;
mint: PublicKey;
opts?: ConfirmOptions;
constructor(connection: Connection, wallet: IWallet, programId: PublicKey, mint: PublicKey, opts?: ConfirmOptions);
getFaucetConfigPublicKeyAndNonce(): Promise<[
PublicKey,
number
]>;
getMintAuthority(): Promise;
getFaucetConfigPublicKey(): Promise;
initialize(): Promise;
fetchState(): Promise;
private mintToUserIx;
mintToUser(userTokenAccount: PublicKey, amount: BN): Promise;
transferMintAuthority(): Promise;
createAssociatedTokenAccountAndMintTo(userPublicKey: PublicKey, amount: BN): Promise<[PublicKey, TransactionSignature]>;
createAssociatedTokenAccountAndMintToInstructions(userPublicKey: PublicKey, amount: BN): Promise<[PublicKey, TransactionInstruction, TransactionInstruction]>;
getAssosciatedMockUSDMintAddress(props: {
userPubKey: PublicKey;
}): Promise;
getTokenAccountInfo(props: {
userPubKey: PublicKey;
}): Promise;
subscribeToTokenAccount(props: {
userPubKey: PublicKey;
callback: (accountInfo: Account) => void;
}): Promise;
}