import type { CreateEndUserBody, ListEndUsersParams, ImportEndUserBodyKeyType, AuthenticationMethods, AddEndUserEvmAccount201, AddEndUserEvmSmartAccount201, AddEndUserSolanaAccount201, EndUser as OpenAPIEndUser, GetDelegationForEndUser200, GetDelegationForEndUserAccount200, SignEvmTransactionWithEndUserAccount200, SignEvmMessageWithEndUserAccount200, SignEvmTypedDataWithEndUserAccount200, SendEvmTransactionWithEndUserAccount200, SendEvmTransactionWithEndUserAccountBodyNetwork, SendEvmAssetWithEndUserAccount200, SendEvmAssetWithEndUserAccountBodyNetwork, SendUserOperationWithEndUserAccountResult, EvmUserOperationNetwork, EvmCall, CreateEvmEip7702DelegationWithEndUserAccount201, EvmEip7702DelegationNetwork, SignSolanaMessageWithEndUserAccount200, SignSolanaTransactionWithEndUserAccount200, SendSolanaTransactionWithEndUserAccount200, SendSolanaTransactionWithEndUserAccountBodyNetwork, SendSolanaAssetWithEndUserAccount200, SendSolanaAssetWithEndUserAccountBodyNetwork, EIP712Message } from "../../openapi-client/index.js";
import type { Prettify } from "../../types/utils.js";
/**
 * The options for validating an access token.
 */
export interface ValidateAccessTokenOptions {
    /**
     * The access token to validate.
     */
    accessToken: string;
}
/**
 * The options for getting an end user.
 */
export interface GetEndUserOptions {
    /**
     * The unique identifier of the end user to retrieve.
     */
    userId: string;
}
/**
 * The options for listing end users.
 */
export type ListEndUsersOptions = ListEndUsersParams;
/**
 * The options for creating an end user.
 */
export type CreateEndUserOptions = CreateEndUserBody & {
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
};
/**
 * The options for adding an EVM account to an end user.
 */
export interface AddEndUserEvmAccountOptions {
    /**
     * The unique identifier of the end user.
     */
    userId: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of adding an EVM account to an end user.
 */
export type AddEndUserEvmAccountResult = AddEndUserEvmAccount201;
/**
 * The options for adding an EVM smart account to an end user.
 */
export interface AddEndUserEvmSmartAccountOptions {
    /**
     * The unique identifier of the end user.
     */
    userId: string;
    /**
     * If true, enables spend permissions for the EVM smart account.
     */
    enableSpendPermissions: boolean;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of adding an EVM smart account to an end user.
 */
export type AddEndUserEvmSmartAccountResult = AddEndUserEvmSmartAccount201;
/**
 * The options for adding a Solana account to an end user.
 */
export interface AddEndUserSolanaAccountOptions {
    /**
     * The unique identifier of the end user.
     */
    userId: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of adding a Solana account to an end user.
 */
export type AddEndUserSolanaAccountResult = AddEndUserSolanaAccount201;
/**
 * The options for importing an end user.
 */
export interface ImportEndUserOptions {
    /**
     * A stable, unique identifier for the end user.
     * If not provided, a UUID will be generated.
     */
    userId?: string;
    /**
     * The authentication methods for the end user.
     */
    authenticationMethods: AuthenticationMethods;
    /**
     * The private key to import.
     * - For EVM: hex string (with or without 0x prefix)
     * - For Solana: base58 encoded string or raw bytes (Uint8Array, 32 or 64 bytes)
     * The SDK will encrypt this before sending to the API.
     */
    privateKey: string | Uint8Array;
    /**
     * The type of key being imported ("evm" or "solana").
     */
    keyType: ImportEndUserBodyKeyType;
    /**
     * Optional RSA public key to encrypt the private key.
     * Defaults to the known CDP public key.
     */
    encryptionPublicKey?: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for getting the active delegation for an end user.
 */
export interface GetDelegationForEndUserOptions {
    /**
     * The unique identifier of the end user.
     */
    userId: string;
}
/**
 * The result of getting the active delegation for an end user.
 */
export type GetDelegationForEndUserResult = GetDelegationForEndUser200;
/**
 * The options for revoking all active delegations for an end user.
 */
export interface RevokeDelegationForEndUserOptions {
    /**
     * The unique identifier of the end user.
     */
    userId: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for getting the account-scoped delegation for a specific end user account address.
 */
export interface GetDelegationForEndUserAccountOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The blockchain address to get the delegation for. Must belong to the end user. */
    address: string;
}
/** The result of getting the account-scoped delegation for a specific end user account. */
export type GetDelegationForEndUserAccountResult = GetDelegationForEndUserAccount200;
/**
 * The options for revoking the account-scoped delegation for a specific end user account address.
 */
export interface RevokeDelegationForEndUserAccountOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The blockchain address whose delegation should be revoked. Must belong to the end user. */
    address: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for getting the account-scoped delegation on an EndUserAccount object.
 */
export interface AccountGetDelegationForAccountOptions {
    /** The blockchain address to get the delegation for. Defaults to the first EVM EOA address. */
    address?: string;
}
/**
 * The options for revoking the account-scoped delegation on an EndUserAccount object.
 */
export interface AccountRevokeDelegationForAccountOptions {
    /** The blockchain address whose delegation should be revoked. Defaults to the first EVM EOA address. */
    address?: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for signing an EVM transaction on behalf of an end user.
 */
export interface SignEvmTransactionOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM address to sign with. */
    address: string;
    /** The RLP-serialized EIP-1559 transaction to sign, hex-encoded. */
    transaction: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of signing an EVM transaction on behalf of an end user.
 */
export type SignEvmTransactionResult = SignEvmTransactionWithEndUserAccount200;
/**
 * The options for signing an EVM message on behalf of an end user.
 */
export interface SignEvmMessageOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM address to sign with. */
    address: string;
    /** The EIP-191 message to sign. */
    message: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of signing an EVM message on behalf of an end user.
 */
export type SignEvmMessageResult = SignEvmMessageWithEndUserAccount200;
/**
 * The options for signing EVM EIP-712 typed data on behalf of an end user.
 */
export interface SignEvmTypedDataOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM address to sign with. */
    address: string;
    /** The EIP-712 typed data to sign. */
    typedData: EIP712Message;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of signing EVM typed data on behalf of an end user.
 */
export type SignEvmTypedDataResult = SignEvmTypedDataWithEndUserAccount200;
/**
 * The options for sending an EVM transaction on behalf of an end user.
 */
export interface SendEvmTransactionOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM address to send from. */
    address: string;
    /** The RLP-serialized EIP-1559 transaction to send, hex-encoded. */
    transaction: string;
    /** The network to send the transaction on. */
    network: SendEvmTransactionWithEndUserAccountBodyNetwork;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of sending an EVM transaction on behalf of an end user.
 */
export type SendEvmTransactionResult = SendEvmTransactionWithEndUserAccount200;
/**
 * The options for sending an EVM asset on behalf of an end user.
 */
export interface SendEvmAssetOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM address to send from. */
    address: string;
    /** The asset to send. Defaults to "usdc". */
    asset?: "usdc";
    /** The recipient address. */
    to: string;
    /** The amount to send. */
    amount: string;
    /** The network to send on. */
    network: SendEvmAssetWithEndUserAccountBodyNetwork;
    /** Whether to use the CDP paymaster. */
    useCdpPaymaster?: boolean;
    /** A custom paymaster URL. */
    paymasterUrl?: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of sending an EVM asset on behalf of an end user.
 */
export type SendEvmAssetResult = SendEvmAssetWithEndUserAccount200;
/**
 * The options for sending a user operation on behalf of an end user.
 */
export interface SendUserOperationOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM smart account address. */
    address: string;
    /** The network to send the user operation on. */
    network: EvmUserOperationNetwork;
    /** The calls to execute. */
    calls: EvmCall[];
    /** Whether to use the CDP paymaster. */
    useCdpPaymaster: boolean;
    /** A custom paymaster URL. */
    paymasterUrl?: string;
    /** An optional data suffix. */
    dataSuffix?: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of sending a user operation on behalf of an end user.
 */
export type SendUserOperationResult = SendUserOperationWithEndUserAccountResult;
/**
 * The options for creating an EVM EIP-7702 delegation on behalf of an end user.
 */
export interface CreateEvmEip7702DelegationOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The EVM address to delegate. */
    address: string;
    /** The network for the delegation. */
    network: EvmEip7702DelegationNetwork;
    /** Whether to enable spend permissions for the delegation. */
    enableSpendPermissions?: boolean;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of creating an EVM EIP-7702 delegation on behalf of an end user.
 */
export type CreateEvmEip7702DelegationForEndUserResult = CreateEvmEip7702DelegationWithEndUserAccount201;
/**
 * The options for signing a Solana message on behalf of an end user.
 */
export interface SignSolanaMessageOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The Solana address to sign with. */
    address: string;
    /** The base64-encoded message to sign. */
    message: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of signing a Solana message on behalf of an end user.
 */
export type SignSolanaMessageResult = SignSolanaMessageWithEndUserAccount200;
/**
 * The options for signing a Solana transaction on behalf of an end user.
 */
export interface SignSolanaTransactionOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The Solana address to sign with. */
    address: string;
    /** The base64-encoded Solana transaction to sign. */
    transaction: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of signing a Solana transaction on behalf of an end user.
 */
export type SignSolanaTransactionResult = SignSolanaTransactionWithEndUserAccount200;
/**
 * The options for sending a Solana transaction on behalf of an end user.
 */
export interface SendSolanaTransactionOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The Solana address to send from. */
    address: string;
    /** The base64-encoded Solana transaction to send. */
    transaction: string;
    /** The Solana network to send on. */
    network: SendSolanaTransactionWithEndUserAccountBodyNetwork;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of sending a Solana transaction on behalf of an end user.
 */
export type SendSolanaTransactionResult = SendSolanaTransactionWithEndUserAccount200;
/**
 * The options for sending a Solana asset on behalf of an end user.
 */
export interface SendSolanaAssetOptions {
    /** The unique identifier of the end user. */
    userId: string;
    /** The Solana address to send from. */
    address: string;
    /** The asset to send. Defaults to "usdc". */
    asset?: "usdc";
    /** The recipient address. */
    to: string;
    /** The amount to send. */
    amount: string;
    /** The Solana network to send on. */
    network: SendSolanaAssetWithEndUserAccountBodyNetwork;
    /** Whether to create the recipient's associated token account if it doesn't exist. */
    createRecipientAta?: boolean;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The result of sending a Solana asset on behalf of an end user.
 */
export type SendSolanaAssetResult = SendSolanaAssetWithEndUserAccount200;
/**
 * The options for signing an EVM transaction on an EndUser object.
 */
export interface AccountSignEvmTransactionOptions {
    /** The EVM address to sign with. Uses the first EVM account if not provided. */
    address?: string;
    /** The RLP-serialized EIP-1559 transaction to sign, hex-encoded. */
    transaction: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for signing an EVM message on an EndUser object.
 */
export interface AccountSignEvmMessageOptions {
    /** The EVM address to sign with. Uses the first EVM account if not provided. */
    address?: string;
    /** The EIP-191 message to sign. */
    message: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for signing EVM typed data on an EndUser object.
 */
export interface AccountSignEvmTypedDataOptions {
    /** The EVM address to sign with. Uses the first EVM account if not provided. */
    address?: string;
    /** The EIP-712 typed data to sign. */
    typedData: EIP712Message;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for sending an EVM transaction on an EndUser object.
 */
export interface AccountSendEvmTransactionOptions {
    /** The EVM address to send from. Uses the first EVM account if not provided. */
    address?: string;
    /** The RLP-serialized EIP-1559 transaction to send, hex-encoded. */
    transaction: string;
    /** The network to send the transaction on. */
    network: SendEvmTransactionWithEndUserAccountBodyNetwork;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for sending an EVM asset on an EndUser object.
 */
export interface AccountSendEvmAssetOptions {
    /** The EVM address to send from. Uses the first EVM account if not provided. */
    address?: string;
    /** The asset to send. Defaults to "usdc". */
    asset?: "usdc";
    /** The recipient address. */
    to: string;
    /** The amount to send. */
    amount: string;
    /** The network to send on. */
    network: SendEvmAssetWithEndUserAccountBodyNetwork;
    /** Whether to use the CDP paymaster. */
    useCdpPaymaster?: boolean;
    /** A custom paymaster URL. */
    paymasterUrl?: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for sending a user operation on an EndUser object.
 */
export interface AccountSendUserOperationOptions {
    /** The EVM smart account address. Uses the first smart account if not provided. */
    address?: string;
    /** The network to send the user operation on. */
    network: EvmUserOperationNetwork;
    /** The calls to execute. */
    calls: EvmCall[];
    /** Whether to use the CDP paymaster. */
    useCdpPaymaster: boolean;
    /** A custom paymaster URL. */
    paymasterUrl?: string;
    /** An optional data suffix. */
    dataSuffix?: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for creating an EVM EIP-7702 delegation on an EndUser object.
 */
export interface AccountCreateEvmEip7702DelegationOptions {
    /** The EVM address to delegate. Uses the first EVM account if not provided. */
    address?: string;
    /** The network for the delegation. */
    network: EvmEip7702DelegationNetwork;
    /** Whether to enable spend permissions for the delegation. */
    enableSpendPermissions?: boolean;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for signing a Solana message on an EndUser object.
 */
export interface AccountSignSolanaMessageOptions {
    /** The Solana address to sign with. Uses the first Solana account if not provided. */
    address?: string;
    /** The base64-encoded message to sign. */
    message: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for signing a Solana transaction on an EndUser object.
 */
export interface AccountSignSolanaTransactionOptions {
    /** The Solana address to sign with. Uses the first Solana account if not provided. */
    address?: string;
    /** The base64-encoded Solana transaction to sign. */
    transaction: string;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for sending a Solana transaction on an EndUser object.
 */
export interface AccountSendSolanaTransactionOptions {
    /** The Solana address to send from. Uses the first Solana account if not provided. */
    address?: string;
    /** The base64-encoded Solana transaction to send. */
    transaction: string;
    /** The Solana network to send on. */
    network: SendSolanaTransactionWithEndUserAccountBodyNetwork;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for sending a Solana asset on an EndUser object.
 */
export interface AccountSendSolanaAssetOptions {
    /** The Solana address to send from. Uses the first Solana account if not provided. */
    address?: string;
    /** The asset to send. Defaults to "usdc". */
    asset?: "usdc";
    /** The recipient address. */
    to: string;
    /** The amount to send. */
    amount: string;
    /** The Solana network to send on. */
    network: SendSolanaAssetWithEndUserAccountBodyNetwork;
    /** Whether to create the recipient's associated token account if it doesn't exist. */
    createRecipientAta?: boolean;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * The options for adding an EVM smart account to an EndUser object.
 */
export interface AddEvmSmartAccountOptions {
    /**
     * If true, enables spend permissions for the EVM smart account.
     */
    enableSpendPermissions: boolean;
    /** Optional idempotency key for safe retries. */
    idempotencyKey?: string;
}
/**
 * Actions that can be performed on an EndUser object.
 */
export type EndUserAccountActions = {
    /**
     * Adds an EVM EOA (Externally Owned Account) to this end user.
     * End users can have up to 10 EVM accounts.
     *
     * @returns A promise that resolves to the newly created EVM EOA account.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.createEndUser({
     *   authenticationMethods: [{ type: "email", email: "user@example.com" }]
     * });
     *
     * const result = await endUser.addEvmAccount();
     * console.log(result.evmAccount.address);
     * ```
     */
    addEvmAccount: (idempotencyKey?: string) => Promise<AddEndUserEvmAccountResult>;
    /**
     * Adds an EVM smart account to this end user.
     * This also creates a new EVM EOA account to serve as the owner of the smart account.
     *
     * @param options - The options for adding the EVM smart account.
     *
     * @returns A promise that resolves to the newly created EVM smart account.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.createEndUser({
     *   authenticationMethods: [{ type: "email", email: "user@example.com" }]
     * });
     *
     * const result = await endUser.addEvmSmartAccount({ enableSpendPermissions: true });
     * console.log(result.evmSmartAccount.address);
     * ```
     */
    addEvmSmartAccount: (options: AddEvmSmartAccountOptions) => Promise<AddEndUserEvmSmartAccountResult>;
    /**
     * Adds a Solana account to this end user.
     * End users can have up to 10 Solana accounts.
     *
     * @returns A promise that resolves to the newly created Solana account.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.createEndUser({
     *   authenticationMethods: [{ type: "email", email: "user@example.com" }]
     * });
     *
     * const result = await endUser.addSolanaAccount();
     * console.log(result.solanaAccount.address);
     * ```
     */
    addSolanaAccount: (idempotencyKey?: string) => Promise<AddEndUserSolanaAccountResult>;
    /**
     * Gets the active delegation for this end user, if one exists.
     *
     * @returns A promise that resolves to the delegation details including its expiry.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.getEndUser({ userId: "user-123" });
     *
     * const delegation = await endUser.getDelegation();
     * console.log(delegation.expiresAt);
     * ```
     */
    getDelegation: () => Promise<GetDelegationForEndUserResult>;
    /**
     * Revokes all active delegations for this end user.
     * This operation can be performed by the end user themselves or by a developer using their API key.
     *
     * @returns A promise that resolves when the delegation has been revoked.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.getEndUser({ userId: "user-123" });
     *
     * await endUser.revokeDelegation();
     * ```
     */
    revokeDelegation: (idempotencyKey?: string) => Promise<void>;
    /**
     * Gets the active account-scoped delegation for a specific blockchain address owned by this end user.
     *
     * @param options - The options for getting the delegation.
     * @returns A promise that resolves to the delegation details including its expiry.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.getEndUser({ userId: "user-123" });
     *
     * const delegation = await endUser.getDelegationForAccount({ address: "0x1234..." });
     * console.log(delegation.expiresAt);
     * ```
     */
    getDelegationForAccount: (options: AccountGetDelegationForAccountOptions) => Promise<GetDelegationForEndUserAccountResult>;
    /**
     * Revokes the account-scoped delegation for a specific blockchain address owned by this end user.
     *
     * @param options - The options for revoking the delegation.
     * @returns A promise that resolves when the delegation has been revoked.
     *
     * @example
     * ```ts
     * const endUser = await cdp.endUser.getEndUser({ userId: "user-123" });
     *
     * await endUser.revokeDelegationForAccount({ address: "0x1234..." });
     * ```
     */
    revokeDelegationForAccount: (options: AccountRevokeDelegationForAccountOptions) => Promise<void>;
    /**
     * Signs an EVM transaction on behalf of this end user using a delegation.
     *
     * @param options - The signing options.
     * @returns A promise that resolves to the signed transaction.
     */
    signEvmTransaction: (options: AccountSignEvmTransactionOptions) => Promise<SignEvmTransactionResult>;
    /**
     * Signs an EVM message on behalf of this end user using a delegation.
     *
     * @param options - The signing options.
     * @returns A promise that resolves to the signature.
     */
    signEvmMessage: (options: AccountSignEvmMessageOptions) => Promise<SignEvmMessageResult>;
    /**
     * Signs EVM EIP-712 typed data on behalf of this end user using a delegation.
     *
     * @param options - The signing options.
     * @returns A promise that resolves to the signature.
     */
    signEvmTypedData: (options: AccountSignEvmTypedDataOptions) => Promise<SignEvmTypedDataResult>;
    /**
     * Sends an EVM transaction on behalf of this end user using a delegation.
     *
     * @param options - The send options.
     * @returns A promise that resolves to the transaction hash.
     */
    sendEvmTransaction: (options: AccountSendEvmTransactionOptions) => Promise<SendEvmTransactionResult>;
    /**
     * Sends an EVM asset on behalf of this end user using a delegation.
     *
     * @param options - The send options.
     * @returns A promise that resolves to the transaction result.
     */
    sendEvmAsset: (options: AccountSendEvmAssetOptions) => Promise<SendEvmAssetResult>;
    /**
     * Sends a user operation on behalf of this end user using a delegation.
     *
     * @param options - The send options.
     * @returns A promise that resolves to the user operation result.
     */
    sendUserOperation: (options: AccountSendUserOperationOptions) => Promise<SendUserOperationResult>;
    /**
     * Creates an EVM EIP-7702 delegation on behalf of this end user.
     *
     * @param options - The delegation options.
     * @returns A promise that resolves to the delegation operation ID.
     */
    createEvmEip7702Delegation: (options: AccountCreateEvmEip7702DelegationOptions) => Promise<CreateEvmEip7702DelegationForEndUserResult>;
    /**
     * Signs a Solana message on behalf of this end user using a delegation.
     *
     * @param options - The signing options.
     * @returns A promise that resolves to the signature.
     */
    signSolanaMessage: (options: AccountSignSolanaMessageOptions) => Promise<SignSolanaMessageResult>;
    /**
     * Signs a Solana transaction on behalf of this end user using a delegation.
     *
     * @param options - The signing options.
     * @returns A promise that resolves to the signed transaction.
     */
    signSolanaTransaction: (options: AccountSignSolanaTransactionOptions) => Promise<SignSolanaTransactionResult>;
    /**
     * Sends a Solana transaction on behalf of this end user using a delegation.
     *
     * @param options - The send options.
     * @returns A promise that resolves to the transaction signature.
     */
    sendSolanaTransaction: (options: AccountSendSolanaTransactionOptions) => Promise<SendSolanaTransactionResult>;
    /**
     * Sends a Solana asset on behalf of this end user using a delegation.
     *
     * @param options - The send options.
     * @returns A promise that resolves to the transaction signature.
     */
    sendSolanaAsset: (options: AccountSendSolanaAssetOptions) => Promise<SendSolanaAssetResult>;
};
/**
 * An end user with actions that can be performed directly on the object.
 *
 * @see {@link OpenAPIEndUser}
 * @see {@link EndUserAccountActions}
 */
export type EndUserAccount = Prettify<OpenAPIEndUser & EndUserAccountActions>;
//# sourceMappingURL=endUser.types.d.ts.map