import type { MergeUserConflictResolution, SdkUser } from '@dynamic-labs/sdk-api-core';
/**
 * Parameters for {@link mergeUserAccounts}: the optional per-field conflict
 * resolutions to apply when completing a merge that surfaced conflicts. Omit it
 * entirely (or pass an empty array) when the merge has no conflicts.
 *
 * @example
 * ```ts
 * const params: MergeUserAccountsParams = {
 *   conflictResolutions: [{ fieldKey, userId, type }],
 * };
 * ```
 * @see mergeUserAccounts
 * @see MergeUserConflictResolution
 */
export type MergeUserAccountsParams = {
    /**
     * Per-field resolutions choosing whose value to keep when the two accounts
     * hold different values for the same profile field. Provide these when the
     * merge surfaced conflicts (via `MergeAccountsConfirmationError.mergeConflicts`).
     * Omit or pass an empty array when there are no conflicts to resolve.
     */
    conflictResolutions?: MergeUserConflictResolution[];
};
/**
 * Completes an account merge after a credential was found to already belong to
 * another user (surfaced as `MergeAccountsConfirmationError` during
 * verification / linking).
 *
 * When the merge has no field-level conflicts, call it with no resolutions to
 * merge directly. When the two accounts hold different values for the same
 * profile field, pass the user's chosen `conflictResolutions` (one per
 * conflict) so the backend knows which value to keep. On success the two users
 * are folded into one, the merged session is persisted, and the merged user is
 * returned.
 *
 * @example
 * ```ts
 * try {
 *   await verifyWalletAccount({ walletAccount });
 * } catch (error) {
 *   if (error instanceof MergeAccountsConfirmationError) {
 *     // resolveConflicts is your own function (not provided by the SDK): given
 *     // the conflicting fields, decide which value to keep for each one —
 *     // usually by prompting the user — and return them as MergeUserConflictResolution[].
 *     await mergeUserAccounts(
 *       error.mergeConflicts
 *         ? { conflictResolutions: resolveConflicts(error.mergeConflicts) }
 *         : undefined,
 *     );
 *   }
 * }
 * ```
 * @param params.conflictResolutions - Optional per-field conflict resolutions.
 * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
 * @returns A promise that resolves to the merged user.
 * @see MergeAccountsConfirmationError
 * @see MergeUserConflictResolution
 * @notInstrumented
 */
export declare const mergeUserAccounts: ({ conflictResolutions }?: MergeUserAccountsParams, client?: import("../../../exports").DynamicClient) => Promise<SdkUser>;
//# sourceMappingURL=mergeUserAccounts.d.ts.map