import { PublicKey, Connection } from '@solana/web3.js';
import type { Nullable } from '../../utils';
import type { IdentityService } from '../identity';
declare type FindAssociatedTokenAddressConfig = {
    solanaWalletKey: PublicKey;
    mintKey: PublicKey;
    solanaTokenProgramKey: PublicKey;
};
/**
 * Finds the associated token address given a solana wallet public key
 */
export declare function findAssociatedTokenAddress({ solanaWalletKey, mintKey, solanaTokenProgramKey }: FindAssociatedTokenAddressConfig): Promise<PublicKey>;
declare type GetTokenAccountInfoConfig = {
    tokenAccountAddressKey: PublicKey;
    connection: Connection;
};
/**
 * Gets token account information (e.g. balance, ownership, etc.)
 */
export declare function getTokenAccountInfo({ tokenAccountAddressKey, connection }: GetTokenAccountInfoConfig): Promise<import("@solana/spl-token").Account>;
declare type CreateAssociatedTokenAccountParams = {
    feePayerKey: PublicKey;
    solanaWalletKey: PublicKey;
    mintKey: PublicKey;
    solanaTokenProgramKey: PublicKey;
    connection: Connection;
    identityService: Nullable<IdentityService>;
};
/**
 * Creates an associated token account for a given solana account (a wallet)
 */
export declare function createAssociatedTokenAccount({ feePayerKey, solanaWalletKey, mintKey, solanaTokenProgramKey, connection, identityService }: CreateAssociatedTokenAccountParams): Promise<{
    transactionSignature: string;
} | undefined>;
export {};
