/// <reference types="@coral-xyz/anchor/node_modules/@solana/web3.js" />
import { type PublicKey, type TransactionInstruction } from "@solana/web3.js";
import { type IxReturn } from "../utils";
import { type CreateDataAccountArgs, type DelegateDataRegistryArgs, type UpdateDataAccountArgs, DeleteDataAccountArgs } from "../data-registry";
import { type RwaClient } from "./Client";
/**
 * Represents the client for Data Registry for an RWA.
 */
export declare class DataRegistry {
    private readonly rwaClient;
    constructor(rwaClient: RwaClient);
    /**
   * Asynchronously generates instructions to update asset information.
   * @returns A Promise that resolves to the instructions to update asset information.
   */
    setupDataAccount(createDataAccountArgs: CreateDataAccountArgs): Promise<IxReturn>;
    /**
   * Asynchronously generates instructions to update asset information.
   * @returns A Promise that resolves to the instructions to update asset information.
   */
    updateAssetsDataAccountInfoIxns(updateArgs: UpdateDataAccountArgs): Promise<TransactionInstruction>;
    /**
   * Asynchronously generates instructions to delete asset information.
   * @returns A Promise that resolves to the instructions to delete asset information.
   */
    deleteAssetsDataAccountInfoIxns(deleteArgs: DeleteDataAccountArgs): Promise<TransactionInstruction>;
    /**
   * Asynchronously generates instructions to update asset information.
   * @returns A Promise that resolves to the instructions to update asset information.
   */
    delegateDataRegistry(delegateDataRegistryArgs: DelegateDataRegistryArgs): Promise<TransactionInstruction>;
    /**
   * Retrieves the data registry pda account for a specific asset mint.
   * @param assetMint - The string representation of the asset's mint address.
   * @returns The data registry pda as a public key.
   */
    getDataRegistryPda(assetMint: string): PublicKey;
}
