import { type TransactionInstruction } from "@solana/web3.js";
import { type CommonArgs } from "../utils";
import { BN, Provider } from "@coral-xyz/anchor";
/** Represents arguments for creating an on identity registry on chain. */
export type CreateIdentityRegistryArgs = {
    authority: string;
    signer: string;
    requireIdentityCreation?: boolean;
} & CommonArgs;
/**
 * Builds the transaction instruction to create an identity registry.
 * @param args - {@link CreateIdentityRegistryArgs}.
 * @returns Create identity registry transaction instruction.
 */
export declare function getCreateIdentityRegistryIx(args: CreateIdentityRegistryArgs, provider: Provider): Promise<TransactionInstruction>;
/** Represents arguments for creating an identity account on chain. */
export type CreateIdentityAccountArgs = {
    level: number;
    owner: string;
    expiry: BN;
    country: number;
} & CommonArgs;
/**
 * Builds the transaction instruction to create an identity account.
 * @param args - {@link CreateIdentityAccountArgs}.
 * @returns Create identity account transaction instruction.
 */
export declare function getCreateIdentityAccountIx(args: CreateIdentityAccountArgs, provider: Provider): Promise<TransactionInstruction>;
/** Represents the arguments required to attach a wallet to an identity account. */
export type AttachWalletToIdentityArgs = {
    wallet: string;
    owner: string;
} & CommonArgs;
export declare function getAttachWalletToIdentityIx(args: AttachWalletToIdentityArgs, provider: Provider): Promise<TransactionInstruction>;
export declare function getDetachWalletFromIdentityIx(args: AttachWalletToIdentityArgs, provider: Provider): Promise<TransactionInstruction>;
/** Represents arguments for creating an identity account on chain. */
export type ChangeCountryArgs = {
    owner: string;
    country: number;
    ignorePolicy?: boolean;
} & CommonArgs;
/**
 * Builds the transaction instruction to add a level to identity account
 * @param args - {@link AddLevelToIdentityAccountArgs}.
 * @returns Add level to identity account transaction instruction.
 */
export declare function getChangeCountryIx(args: ChangeCountryArgs, provider: Provider): Promise<TransactionInstruction>;
/** Represents the arguments required to add a level to an identity account. */
export type AddLevelToIdentityAccountArgs = {
    owner: string;
    levels: number[];
    expiries: BN[];
    signer: string;
    ignorePolicy?: boolean;
} & CommonArgs;
/**
 * Builds the transaction instruction to add a level to identity account
 * @param args - {@link AddLevelToIdentityAccountArgs}.
 * @returns Add level to identity account transaction instruction.
 */
export declare function getAddLevelToIdentityAccount(args: AddLevelToIdentityAccountArgs, provider: Provider): Promise<TransactionInstruction>;
export type RemoveLevelFromIdentityAccountArgs = {
    owner: string;
    levels: number[];
    signer: string;
    enforceLimits?: boolean;
} & CommonArgs;
/**
 * Builds the transaction instruction to remove a level from identity account
 * @param args - {@link RemoveLevelFromIdentityAccount}.
 * @returns Add level to identity account transaction instruction.
 */
export declare function getRemoveLevelFromIdentityAccount(args: RemoveLevelFromIdentityAccountArgs, provider: Provider): Promise<TransactionInstruction>;
export type RevokeIdentityAccountArgs = {
    owner: string;
    assetMint: string;
    signer: string;
} & CommonArgs;
export declare function getRevokeIdentityAccountIx(args: RevokeIdentityAccountArgs, provider: Provider): Promise<TransactionInstruction>;
//# sourceMappingURL=instructions.d.ts.map