/// <reference types="@coral-xyz/anchor/node_modules/@solana/web3.js" />
import { type TransactionInstruction } from "@solana/web3.js";
import { type CommonArgs, type IxReturn } from "../utils";
import { type DataAccountType } from "./types";
import { type AnchorProvider } from "@coral-xyz/anchor";
/** Represents arguments for creating an on chain data registry to store data accounts. */
export type CreateDataRegistryArgs = {
    authority: string;
    signer: string;
} & CommonArgs;
/**
 * Builds the transaction instruction to create a data registry.
 * @param args - {@link CreateDataRegistryArgs}.
 * @returns Create data registry transaction instruction.
 */
export declare function getCreateDataRegistryIx(args: CreateDataRegistryArgs, provider: AnchorProvider): Promise<TransactionInstruction>;
export type CreateDataAccountArgs = {
    type: DataAccountType;
    name: string;
    uri: string;
    signer: string;
} & CommonArgs;
export declare function getCreateDataAccountIx(args: CreateDataAccountArgs, provider: AnchorProvider): Promise<IxReturn>;
export type UpdateDataAccountArgs = {
    dataAccount: string;
    name: string;
    uri: string;
    signer: string;
    type: DataAccountType;
} & CommonArgs;
export declare function getUpdateDataAccountIx(args: UpdateDataAccountArgs, provider: AnchorProvider): Promise<TransactionInstruction>;
export type DeleteDataAccountArgs = {
    signer: string;
    dataAccount: string;
} & CommonArgs;
export declare function getDeleteDataAccountIx(args: DeleteDataAccountArgs, provider: AnchorProvider): Promise<TransactionInstruction>;
export type DelegateDataRegistryArgs = {
    delegate: string;
    authority: string;
} & CommonArgs;
export declare function getDelegateDataRegistryIx(args: DelegateDataRegistryArgs, provider: AnchorProvider): Promise<TransactionInstruction>;
