///
import type { AccountInfo } from "@solana/spl-token";
import type { AccountInfo as BaseAccountInfo, Connection, TransactionInstruction } from "@solana/web3.js";
import { PublicKey } from "@solana/web3.js";
/**
* Get a authority token account address
* @param tokenMint The mint of token
* @param owner The owner associated token address
* @returns
*/
export declare function getAssociatedTokenAddress(tokenMint: PublicKey, owner: PublicKey): Promise;
/**
* Get a create associated token account instruction
* @param tokenMint The mint of token
* @param owner The owner associated token address
* @param payer The pays for transaction
* @returns
*/
export declare function createAssociatedTokenAccountInstruction(tokenMint: PublicKey, associatedAccount: PublicKey, owner: PublicKey, payer: PublicKey): TransactionInstruction;
/**
* Get the token account info by address
* @param conn The connection to use
* @param address The token account address
* @returns
*/
export declare function getTokenAccount(conn: Connection, address: PublicKey): Promise;
/**
* Get the token accounts by owner
* @param conn The connection to use
* @param owner The owner address
* @returns The token accounts
*/
export declare function getTokenAccounts(conn: Connection, owner: PublicKey): Promise;
export declare function parseTokenAccountData(data: Buffer): AccountInfo;
export declare function parseTokenAccount(account: BaseAccountInfo): AccountInfo;
/** Instructions defined by the program */
export declare enum TokenInstruction {
InitializeMint = 0,
InitializeAccount = 1,
InitializeMultisig = 2,
Transfer = 3,
Approve = 4,
Revoke = 5,
SetAuthority = 6,
MintTo = 7,
Burn = 8,
CloseAccount = 9,
FreezeAccount = 10,
ThawAccount = 11,
TransferChecked = 12,
ApproveChecked = 13,
MintToChecked = 14,
BurnChecked = 15,
InitializeAccount2 = 16,
SyncNative = 17,
InitializeAccount3 = 18,
InitializeMultisig2 = 19,
InitializeMint2 = 20
}
export interface SyncNativeInstructionData {
instruction: TokenInstruction.SyncNative;
}
/** TODO: docs */
export declare const syncNativeInstructionData: import("@solana/buffer-layout").Structure;
/**
* Construct a SyncNative instruction
*
* @param account Native account to sync lamports from
* @param programId SPL Token program account
*
* @return Instruction to add to a transaction
*/
export declare function createSyncNativeInstruction(account: PublicKey, programId?: PublicKey): TransactionInstruction;
//# sourceMappingURL=token.d.ts.map